어떻게 안드로이드에서 dynamic listPreference를 생성하나요? 모든 무선 랜 액세스 포인트를 받고 기본 활동 (예 : listpreference를 사용하여 목록 만들기)에서 목록을 만들고 싶습니다. 이 작업을 수행하는 방법?android에서 동적 ListPreference
답변
요소 이름도 Java 클래스이기 때문에 Android의 모든 XML 요소는 프로그래밍 방식으로 만들 수 있습니다. 다음 코드의 항목/항목 값을 추가
CharSequence[] entries = { "One", "Two", "Three" };
CharSequence[] entryValues = { "1", "2", "3" };
ListPreference lp = new ListPreference(this);
lp.setEntries(entries);
lp.setEntryValues(entryValues);
당신은 다른 방법으로 XML에 그것을 만들 수 있습니다 : 따라서 당신이 코드에서 ListPreference를 만들 수 있습니다 동적 목록 환경을 만들기위한
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);
findViewById와 작동합니다. 조회수. ListPreference는보기가 아니므로 두 번째 예제가 작동하지 않는 것 같습니다. 전송할 수 없습니다. –
findViewById 대신 findPreference가 작동해야합니다. 그러나 findPreference는 Honeycomb에서 더 이상 사용되지 않습니다. –
, u는 필요 preference activity을 작성하십시오 (즉, 활동을 PreferenceActivity로 확장).
다음 코드를 사용하여 목록을 동적으로 만들 수 있습니다. !이는 마약 단속반을 얻을하는 데 도움이
// Root PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); dialogBasedPrefCat.setTitle("Category Title"); root.addPreference(dialogBasedPrefCat); //Adding a category // List preference under the category ListPreference listPref = new ListPreference(this); listPref.setKey("keyName"); //Refer to get the pref value listPref.setEntries("Array of values"); listPref.setEntryValues("Array of item value"); listPref.setDialogTitle("Dialog Title"); listPref.setTitle("Title"); listPref.setSummary("Summary"); dialogBasedPrefCat.addPreference(listPref); Adding under the category return root;
희망 ...
편집 :
만들고 [] 같이의 CharSequence에 값을 추가
CharSequence[] cs = new String[]{"myValue"};
다른 유형의 환경 설정을 동적으로 생성하려면 다음 예제 코드를 참조하십시오. http://developer.android.com/resources/samples/ApiDemos/src/com/example/andre/apis/preference/PreferencesFromCode.html –
조금 이상합니다. getEntries 및 getEntryValues는 DOA이지만 좋은 이유가 있다고 확신합니다. 그리고 이것은 훌륭한 해결책입니다. – Malachi
Boris - 링크가 작동하지 않습니다. 다운로드 샘플 인덱스로 연결됩니다.그러나 다운로드 한 샘플에서 링크 위로 마우스를 가져 가면 찾은 경로를 따라 찾았습니다. (다른 사람의 경우 : android-sdk \ samples \ android-
이 미니멀 기술은 두 환경 모두를위한 것입니다. 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;
}
에서 참고 :
(가) XML은 베티 아마도 자기 문서화하고 있습니다 동적 환경 설정 작성보다 선택의 폭이 넓습니다. 항목이이 onCreate``의 항목을 설정하는 것만으로는 충분하지 않습니다 동적 될 것으로 고려
: 당신의
PreferenceFragment
PreferenceActivity
를 사용하지 않음으로써 시작(b)는 쉽게이 작업을 수행 할 수 있습니다. 또한 ListPreference를 클릭 할 때 값을 업데이트해야합니다. http://stackoverflow.com/questions/6474707/how-to-fill-listpreference-dynamically-when-onpreferenceclick-is-triggered/13828912#13828912 – ccpizza