Ho creato uno sfondo animato Android e sto cercando di consentire a un utente di scegliere un'immagine dal proprio telefono e applicarla come immagine di sfondo, ma quando avvio l'attività che avvia l'intento scegli le immagini, le mie preferenze condivise non sembrano essere salvate correttamente.Preferenze condivise Android non salvando
Di seguito è riportato il mio metodo onCreate dell'attività che avvio quando gli utenti premono il pulsante di preferenza e onActivityResult che ottiene il percorso dell'immagine sul dispositivo (tutto ciò che sembra funzionare). La stampa dopo aver commesso le preferenze non stampa nulla.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, 0);
preferences.edit().putString(SETTINGS_BACKGROUND_IMAGE, "okok");
preferences.edit().commit();
System.out.println("Image" + preferences.getString(SETTINGS_BACKGROUND_IMAGE, ""));
}
}
finish();
}
Sono l'unico che non può vedere la differenza nella logica tra questo e il codice originale? – josephus
quando si chiama preferences.edit(), si ottiene un'istanza di Editor, su cui jOE stava mettendo una stringa, ma successivamente quell'istanza non è stata più utilizzata (quindi persa, e probabilmente raccolta di dati inutili). Quindi, jOE ha chiamato di nuovo preferences.edit(), ottenendo un'altra istanza di Editor contenente le impostazioni iniziali, che ha appena salvato sul posto. Questo in pratica ha appena salvato le impostazioni iniziali (non ha fatto nulla per aggiornare le sue preferenze condivise) – zrgiu
zrgui, grazie mille per il tuo aiuto! Il tuo suggerimento ha funzionato perfettamente! – jOE