Domanda

Ho un menu delle impostazioni che si apre e si tratta di un menu del tipo ListPreference. Si è associato con un file settings.xml dove ci sono 'array-strings' all'interno di esso. Tutto funziona bene, ma non so come recuperare la preferenza degli utenti.

Per fare un esempio, diciamo che l'utente sceglie un colore (rosso, verde o blu). La lista che ho fatto nei miei 'array-strings' contiene il testo rosso, verde e blu. All'interno il mio codice, vorrei fare qualcosa se l'utente ha scelto rosso, qualcosa d'altro se scelgono blu, ecc, ecc Dovrei usare una dichiarazione 'caso' o un 'se' dichiarazione? E, soprattutto, come faccio a recuperare la preferenza degli utenti - la chiave? (Sto controllando per un valore booleano?)

È stato utile?

Soluzione

Se si utilizza ListPreference e non avete disattivato stato persistente, è possibile leggere il valore selezionato dai SharedPreferences, dopo l'impostazione è completata.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString(yourkey, "defvalue");

Inoltre è possibile iscriversi alla onClick evento, e si utilizza il codice Rpond menzionato.

Altri suggerimenti

Se l'elenco viene mostrato in una finestra di dialogo, allora è necessario specificare un OnClickListener che chiamerà un metodo onClick. Controllare l'esempio di seguito. Nell'esempio l'indice passato alla onClick è l'indice dell'elemento dell'array.

new AlertDialog.Builder(this).setTitle("Settings").setItems(R.array.colors, new DialogInterface.onClickListener() { void onClick(DialogInterface d, int index) {
switch(index) {
CASE 0: // do something
CASE 1: // do something else}}}; 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top