Androidで動的listPreferenceを生成する方法は?私はすべてのwifiアクセスポイントを取得し、設定でActivityを使用してリストを作成します(つまり、listpreferenceを使用してリストを作成します)。これを行う方法?
AndroidのすべてのXML要素は、要素名もJavaクラスであるため、プログラムで作成できます。したがって、コードでListPreferenceを作成できます。
CharSequence[] entries = { "One", "Two", "Three" };
CharSequence[] entryValues = { "1", "2", "3" };
ListPreference lp = new ListPreference(this);
lp.setEntries(entries);
lp.setEntryValues(entryValues);
または、XMLで作成してから、コードにエントリ/エントリ値を追加することもできます。
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);
動的リスト設定を作成するには、 設定アクティビティ を作成する必要があります(つまり、アクティビティをPreferenceActivityとして拡張する)。
次のコードを使用して、リストを動的に作成できます。
// Root PreferenceScreen root = getPreferenceManager()。createPreferenceScreen(this); dialogBasedPrefCat.setTitle( "Category Title"); root.addPreference(dialogBasedPrefCat ); //カテゴリの追加 //カテゴリの下のリスト設定 ListPreference listPref = new ListPreference(this); listPref.setKey( "keyName"); // pref値の取得を参照してください listPref.setEntries( "値の配列"); listPref.setEntryValues( "アイテム値の配列"); listPref.setDialogTitle( 「ダイアログタイトル」); listPref.setTitle( "Title"); listPref.setSummary( "Summary"); dialogBasedPrefCat.addPreference(listPref);カテゴリ の下に追加すると、ルートを返します;
これが!deaの取得に役立つことを願っています...
編集:
次のように、値を作成してCharSequence []に追加します。
CharSequence[] cs = new String[]{"myValue"};
この最小限の手法は、両方の環境に対応しています。
Preferences.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
を起動すると、簡単にこれを行うことができます。