में गतिशील सूची प्राथमिकता डायनामिक सूची कैसे उत्पन्न करें एंड्रॉइड में संदर्भ? मैं सभी वाईफाई एक्सेस पॉइंट प्राप्त करना चाहता हूं और वरीयता गतिविधि में उपयोग करके एक सूची बनाना चाहता हूं (यानी सूची वरीयता का उपयोग करके एक सूची बनाएं)। यह कैसे करें?एंड्रॉइड
एंड्रॉइड
उत्तर
एंड्रॉइड में प्रत्येक एक्सएमएल तत्व प्रोग्रामेटिक रूप से बनाया जा सकता है क्योंकि तत्व का नाम जावा क्लास भी है। इसलिए आप कोड में एक 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);
findViewById के साथ काम करता है देखा गया। ListPreference एक दृश्य नहीं है, इसलिए दूसरा उदाहरण काम नहीं कर रहा है। कास्ट नहीं कर सकता –
findPiewference को खोजने के बजाय काम करना चाहिए ViewById। हालांकि खोज हनीकॉम्ब में प्रेसीफर को बहिष्कृत किया गया है। –
एक गतिशील सूची वरीयता बनाने के लिए, यू की जरूरत है preference activity बनाएं (यानी प्राथमिकता के रूप में गतिविधि को विस्तारित करने के लिए)।
निम्नलिखित कोड का उपयोग गतिशील रूप से सूची बनाने के लिए किया जा सकता है।
// 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;
आशा है कि यह एक dea पाने के लिए मदद करता है ...
संपादित करें:
बनाएँ और [] इस तरह CharSequence में मान जोड़ते:
CharSequence[] cs = new String[]{"myValue"};
गतिशील रूप से अन्य प्रकार की प्राथमिकताओं को बनाने के लिए यह उदाहरण कोड देखें: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/preference/PreferencesFromCode.html –
थोड़ा अजीब कि GetEntries और getEntryValues DOA हैं लेकिन मुझे यकीन है कि एक अच्छा कारण है। और यह एक अच्छा समाधान है। – Malachi
बोरिस - आपका लिंक काम नहीं करता है: यह मुझे डाउनलोड नमूने सूचकांक में ले जाता है।हालांकि, मैंने अपने डाउनलोड किए गए नमूने में अपने लिंक पर होवर करते समय इंगित पथ का पालन किया और पाया। (किसी और के लिए: एंड्रॉइड-एसडीके \ नमूने से शुरू करें \ android-
इस minimalist तकनीक दोनों वातावरण के लिए है।
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;
}
में नोट्स:
(क) एक्सएमएल आत्म दस्तावेजीकरण और शायद एक बेट्टे है गतिशील वरीयता निर्माण से आर पसंद।
यह देखते हुए कि आइटम यह 'onCreate' में आइटम स्थापित करने के लिए पर्याप्त नहीं है गतिशील हो जाएगा:
(ख) अपने
PreferenceFragment
PreferenceActivity
का उपयोग कर नहीं द्वारा शुरू आसानी से आप यह कर सकते हैं। ListPreference क्लिक होने पर आपको मानों को अपडेट करने की भी आवश्यकता होती है: http://stackoverflow.com/questions/6474707/how-to-fill-listpreference- गतिशील-when-onpreferenceclick-is-triggered/13828912#13828912 – ccpizza