Эта минималистичная техника предназначена для обеих сред.
В настройках.xml
<!-- NB: Dynamic array insertion for 'entries'/'entryValues' -->
<ListPreference
android:key="xyzzy"
android:title="..."
android:summary="..."
android:numeric="integer"
android:defaultValue="0"
android:layout="?PrefLayoutDtl"
/>
В PreferenceFragment.onCreate()
addPreferencesFromResource(R.xml.preferences);
expand_xyzzy((ListPreference)findPreference("xyzzy"));
В другом месте
public static Preference expand_xyzzy (ListPreference pref) {
if (pref == null) return pref;
pref.setEntries(new String["one","two","three];
pref.setEntryValues(new String["0","1","2"]);
return pref;
}
Примечания:
(a) XML самодокументируется и, возможно, является лучшим выбором, чем создание динамических предпочтений.
(b) Если вы начнете PreferenceFragment
, НЕ используя PreferenceActivity
, вы легко сможете сделать это: