这里我们使用类比的方法,将 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定义一一对应。