這裡我們使用類比的方法,將 PreferenceActivity 與一般的Activity 作個類比,可以更好的理解Android.Preference中的 各個類。
PreferenceActivity |
Activity |
Preference |
View |
PreferenceGroup |
ViewGroup |
PreferenceScreen |
LinearLayout |
CheckBoxPreference |
CheckBox |
EditTextPreference |
EditText |
ListPreference |
List |
PreferenceCategory |
ViewGroup |
… |
.. |
PreferenceActivity 的UI是通過 Preference等來定義,和Activity的ContentView一樣,PreferenceActivity 的UI可以通過XML定義,也可以使用代碼來定義, 本例就是使用代碼來定義PreferenceActivity 的UI。部分代碼如下:
// Root
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
// Inline preferences
PreferenceCategory inlinePrefCat = new PreferenceCategory(this);
inlinePrefCat.setTitle(R.string.inline_preferences);
root.addPreference(inlinePrefCat);
// Toggle preference
CheckBoxPreference togglePref = new CheckBoxPreference(this);
togglePref.setKey("toggle_preference");
togglePref.setTitle(R.string.title_toggle_preference);
togglePref.setSummary(R.string.summary_toggle_preference);
inlinePrefCat.addPreference(togglePref);
...
基本上和使用XML定義一一對應。