¿Cómo generar dynamic listPreference en android? Quiero obtener todos los puntos de acceso wifi y hacer una lista utilizando la Actividad de preferencia (es decir, hacer una lista usando la preferencia de la lista). ¿Cómo hacer esto?Dynamic ListPreference en android
Respuesta
Todos los elementos XML en Android se pueden crear mediante programación ya que el nombre del elemento también es una clase Java. Por lo tanto, se puede crear un ListPreference en código:
CharSequence[] entries = { "One", "Two", "Three" };
CharSequence[] entryValues = { "1", "2", "3" };
ListPreference lp = new ListPreference(this);
lp.setEntries(entries);
lp.setEntryValues(entryValues);
Usted podría alternativamente crearlo en XML añada las entradas/valores de entrada en 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);
findViewById funciona con puntos de vista. ListPreference no es una vista, por lo que el segundo ejemplo no parece funcionar. No se puede transmitir –
findPreference debería funcionar en lugar de findViewById. Sin embargo, findPreference está en desuso en Honeycomb. –
Para crear una preferencia lista dinámica, u necesidad de crea un preference activity (es decir, para extender una actividad como PreferenceActivity).
El siguiente código se puede usar 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 obtener una dea ...
EDITAR:
Crear y agregar valores a CharSequence como esto []:
CharSequence[] cs = new String[]{"myValue"};
Vea este código de ejemplo para crear dinámicamente otros tipos de preferencias: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/preference/PreferencesFromCode.html –
Un poco extraño that getEntries y getEntryValues son DOA, pero estoy seguro de que hay una buena razón. Y esta es una gran solución. – Malachi
Boris - su enlace no funciona: simplemente me lleva al índice Descargar muestras.Sin embargo, seguí el camino indicado al pasar el mouse sobre su enlace en mis muestras descargadas y lo encontré. (Para cualquier otra persona: comience desde android-sdk \ samples \ android-
Esta minimalista la técnica 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"));
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 tal vez un Bette opción de elección que la creación de preferencia dinámica.
(b) A partir de su PreferenceFragment
al no utilizar PreferenceActivity
fácilmente le permite hacer esto:
- 1. Selección múltiple ListPreference en android
- 2. Android se bloquea en ListPreference
- 3. Android Dynamic Chart
- 4. Android Dynamic String Resources
- 5. Desactivar filas en ListPreference
- 6. ListPreference dependencia
- 7. Android Dynamic Icon de notificación
- 8. Mostrando imagen en el resumen de ListPreference
- 9. cómo conseguir el texto seleccionado y valor ListPreference Android archivo
- 10. Generación y reproducción de Dynamic Midi en Android: ¿posible?
- 11. ¿Expresiones Dynamic LINQ y Dynamic Lambda?
- 12. Dynamic Regex en Ruby
- 13. @dynamic en iPad/iPhone
- 14. Dynamic MemberExpression
- 15. ¿Forma fácil de hacer la opción múltiple de ListPreference en Android?
- 16. ¿Cómo se obtiene una ListPreference de Android definida en Xml cuyos valores son enteros?
- 17. El valor predeterminado de ListPreference no aparece
- 18. ¿Cómo obtener la opción seleccionada de ListPreference?
- 19. Dynamic TextView en diseño relativo
- 20. Cómo iniciar una ListPreference a uno de sus valores
- 21. Dynamic C# .NET Webservice
- 22. dynamic start_urls in scrapy
- 23. Dynamic Paths in Helper
- 24. Clojure Dynamic Binding
- 25. Dynamic Form Creación
- 26. Fields_for dynamic label
- 27. Mathematica Dynamic List Manipulation
- 28. Dynamic svg favicon?
- 29. PHP Dynamic Sprite Creation
- 30. Xml Serialization Dynamic Ignore
Teniendo en cuenta que los artículos serán dinámicas, no es suficiente para establecer los elementos de 'onCreate'. También necesita actualizar los valores cuando se hace clic en ListPreference: http://stackoverflow.com/questions/6474707/how-to-fill-listpreference-dynamically-when-onpreferenceclick-is-triggered/13828912#13828912 – ccpizza