2011年7月25日月曜日

android:summaryを動的に書き換える その2

android:summaryを動的に書き換える その2

前回は、利用者が操作した後のentry値を取得して表示した。
今回は、アプリの起動時に、保存していた設定値を読み込んで表示することに挑戦する。


Javaファイル

始めの部分:

public class setPreferenceAct extends PreferenceActivity
    implements
    OnSharedPreferenceChangeListener
    {


    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        addPreferencesFromResource(R.layout.preference);
        
        int iRet;
        String s;
        Preference p;
        ListPreference l;
        Resources r;
        p = findPreference("JPSource");
        l = (ListPreference)p;
        s = l.getValue();
        r = getResources();
        iRet = l.findIndexOfValue(s);
        if(iRet<0){
            s = r.getString(R.string.Empty);
        }
        else{
            String[] sa;
            sa = r.getStringArray(R.array.JPN_Sources);
            s = sa[iRet];
        }
        l.setSummary(s);

ListPreference系を使えば、そこからそのまま設定値を読み込めます。findIndexOfValueメソッドも用意されていて、とても便利ですね。
なお、保存した設定値は、Androidアプリの設定画面を作成するの「保存したデータの確認」に書かれています。
このファイルをEclipseのDDMSを使って削除すれば、インストール前の状態が再現されます。

0 件のコメント:

コメントを投稿