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 ,可以执行此操作:

图片