sirve - Dynamic ListPreference en Android
shared preferences flutter (3)
Cada elemento XML en Android se puede crear mediante programación, ya que el nombre del elemento también es una clase Java. Por lo tanto, puede crear un ListPreference en el código:
CharSequence[] entries = { "One", "Two", "Three" };
CharSequence[] entryValues = { "1", "2", "3" };
ListPreference lp = new ListPreference(this);
lp.setEntries(entries);
lp.setEntryValues(entryValues);
Alternativamente, podría crearlo en XML y luego agregar las entradas / valores de entrada en el código:
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);
¿Cómo generar listPreference dinámico en Android? Quiero obtener todos los puntos de acceso wifi y hacer una lista utilizando la Actividad de preferencia (es decir, hacer una lista utilizando la preferencia de lista). ¿Como hacer esto?
Esta técnica minimalista es para ambos ambientes.
En 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"
/>
En PreferenceFragment.onCreate()
addPreferencesFromResource(R.xml.preferences);
expand_xyzzy((ListPreference)findPreference("xyzzy"));
En otra parte
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;
}
Notas:
(a) XML es auto-documentado y quizás una mejor opción que la creación dinámica de preferencias.
(b) Iniciar su PreferenceFragment
NO utilizando PreferenceActivity
permite hacer esto fácilmente:
Para crear una preferencia de lista dinámica, necesita crear una actividad de preferencia (es decir, para extender una actividad como PreferenceActivity).
El siguiente código puede usarse para crear la lista dinámicamente.
// 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;
Espero que esto ayude a conseguir un! Dea ...
EDITAR:
Crea y agrega valores a CharSequence [] de esta manera:
CharSequence[] cs = new String[]{"myValue"};