PreferenceActivity まとめ
Android の設定画面用 Activity, PreferenceActivity の使い方を簡単にまとめてみる。
1. 画面の作り方
res/xml/preference.xml (名前はなんでもよかったりする)を作成する。この XML の書き方については このへん がわかりやすい。別に PreferenceCategory はあってもなくてもいい。試しに作った preference.xml はこんなカンジ。
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <ListPreference android:key="@string/pref_key_list" android:title="@string/pref_title_list" android:summary="@string/pref_summary_list" android:dialogTitle="@string/choose" android:entries="@array/pref_list_entries" android:entryValues="@array/pref_list_entry_values"/> <CheckBoxPreference android:key="@string/pref_key_checkbox" android:title="@string/pref_title_checkbox" android:summary="@string/pref_summary_checkbox" /> </PreferenceScreen>
2. Activity の作り方
PreferenceActivity を継承した Activity を作成する。こんなカンジ。
public class MyPreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); } }
さっき作ったXMLリソースを読み込むだけ。これで画面の表示+設定の読み書きをしてくれる。楽ちん!
3. Activity の呼び出し方
特別なことはなにもしなくてOK。いつも通りの手順で呼び出せばOK。
Intent intent = new Intent(this, MyPreferenceActivity.class); startActivity(intent);
4. 設定の読み込み方
メインの Activity から PreferenceActivity で設定した内容を読み込むには SharedPreferences なるモノを使うらしい。最初、ここを参考にやってみたら情報が古いせいかうまくいかず。しかたなく別のページを参考にやってみたら今度は成功!というわけで失敗例と成功例。
// 失敗例 SharedPreferences prefs = getPreferences(MODE_PRIVATE); // 成功例 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
こうして取得した SharedPreferences インスタンスから1つずつ設定を取り出す。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); String listValue = prefs.getString(getString(R.string.pref_key_list), ""); boolean checkboxValue = prefs.getBoolean(getString(R.string.pref_key_checkbox), false);
わかってみれば超簡単!