Android中的dynamicListPreference
如何在android中生成dynamiclistPreference? 我想得到所有的wifi接入点,并使用优先活动列表(即使用列表首选项列表)。 这个怎么做?
为了创builddynamic列表首选项,您需要创build一个首选项活动 (即将活动扩展为PreferenceActivity)。
以下代码可以用来dynamic创build列表。
// 根 PreferenceScreen root = getPreferenceManager()。createPreferenceScreen(this); dialogBasedPrefCat.setTitle(“Category Title”); root.addPreference(dialogBasedPrefCat); //添加一个类别 //列出该类别下的首选项 ListPreference listPref = new ListPreference(this); listPref.setKey( “的keyName”); //请参阅获取pref值 listPref.setEntries(“Array of values”); listPref.setEntryValues(“项目值的数组”); listPref.setDialogTitle(“Dialog Title”); listPref.setTitle( “标题”); listPref.setSummary( “摘要”); dialogBasedPrefCat.addPreference(listPref); 在类别下添加 返回根目录
希望这有助于得到一个!德…
编辑:
像这样创build和添加CharSequence []的值:
CharSequence[] cs = new String[]{"myValue"};
Android中的每个XML元素都可以以编程方式创build,因为元素名称也是Java类。 因此你可以在代码中创build一个ListPreference:
CharSequence[] entries = { "One", "Two", "Three" }; CharSequence[] entryValues = { "1", "2", "3" }; ListPreference lp = new ListPreference(this); lp.setEntries(entries); lp.setEntryValues(entryValues);
您也可以用XML创build它,然后在代码中添加条目/条目值:
CharSequence[] entries = { "One", "Two", "Three" }; CharSequence[] entryValues = { "1", "2", "3" }; ListPreference lp = (ListPreference)findPreference("list_key_as_defined_in_xml"); lp.setEntries(entries); lp.setEntryValues(entryValues);
这个极简主义技术适用于这两种环境。
偏好.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是自我logging的,也许是比dynamic偏好创build更好的select。
(b)通过不使用PreferenceActivity
轻松启动PreferenceFragment
,可以执行此操作: