2010-08-31 19 views
7

Qualcuno può chiarirmi le SharedPreferences in Android. Come posso impostare una condizione di visualizzazione di un "Messaggio di avviso" solo una volta quando l'attività viene caricata inizialmente nell'applicazione?Che cos'è SharedPreferences in Android?

Come si fa utilizzando SharedPreferences?

Thsnks, John

risposta

6

E 'completamente per caso, io giuro , che blogged about this oggi :)

SharedPreferences settings = this.getSharedPreferences("MyApp",0); 
boolean firstrun=settings.getBoolean("firstrun",true); 
if (firstrun) { 
    SharedPreferences.Editor e = settings.edit(); 
    e.putBoolean("firstrun",false); 
    e.commit(); 
    // Do something here that you only want to happen the first time 
} 
+0

Ciao vmlinuz ringraziamenti così tanto per rispondere, ho davvero avuto una buona breve idea regardiing cosa devo fare dopo. Ho solo avuto un dubbio: - Per favore, dimmi cosa esattamente ("MyApp", 0) nella prima riga significa? Grazie, david –

+0

David (o John?), "MyApp" è un nome file arbitrario - tu può avere più di un file di preferenze per un'app e il file può essere utilizzato da più parti dell'app in una sola volta, quindi il nome file è un identificatore, lo 0 è una modalità per il file e probabilmente si desidera solo lasciarlo a 0 ... – vmlinuz

+0

Grazie per la spiegazione vmlinuz –

1
SharedPreferences sp = context.getSharedPreferences("myApp",0); 
boolean showAlert = sp.getBoolean("Alert",true); //defaults to true if no value set 
//Show alert if true 
sp.setBoolean("Alert",false); //set to false 
1

Se solo si desidera creare la vostra finestra di dialogo una volta quando l'applicazione è installata è possibile utilizzare il seguente insieme al codice di cui sopra. Questo sarà impostato per la prima volta e tutti i tempi successivi non verranno caricati.

/* Loading default preferences the first time application is run */ 
     PreferenceManager.setDefaultValues(getApplicationContext(), 
       R.xml.preference, false); 

È possibile impostare un valore booleano nel preference.xml e renderlo falso in onCreate(), in modo da non ripetere nuovamente l'AlertDialog.

Problemi correlati