preferenze separate per ogni visualizzazione in un'applicazione Android
-
12-10-2019 - |
Domanda
Non ho più visualizzazioni che vanno e vengono, come si esegue l'applicazione. Voglio ogni fine di avere le proprie preferenze personali che vengono memorizzati come il tag ID della vista. Sopra questi è il "Preferenze generali" che le preferenze sotto fanno riferimento per ottenere i loro valori predefiniti quando la vista viene creato.
In questo momento ho da esso istituito che le preferenze generali sono i SharedPreferences predefiniti. Ma non ho idea di come creare le nuove preferenze e creare un'interfaccia utente attività, in modo che l'utente li può cambiare. E 'più o meno lo stesso come l'impostazione dei SharedPreferences?
Soluzione
questo potrebbe non essere esattamente quello che stai chiedendo, ma ecco quello che faccio:
nella mia attività principale, quando chiamo l'attività delle preferenze, lo passo il nome del file delle preferenze personalizzato come dati supplementari in intento:
static final String EXTRA_PREFERENCES_NAME = "android.intent.extra.PREFERENCES_NAME";
...
Intent intent = new Intent(this, Preferences.class);
intent.putExtra(EXTRA_PREFERENCES_NAME, preferencesName);
startActivity(intent);
dunque, nella mia attività preferenze, ottengo il nome preferenze personalizzate e impostare in questo modo:
public class Preferences extends PreferenceActivity {
private String preferencesName = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// get the custom preferences name from the extra data in the intent
preferencesName = getIntent().getExtras().getString(MainActivity.EXTRA_PREFERENCES_NAME);
// set the preferences file name
getPreferenceManager().setSharedPreferencesName(preferencesName);
// get the default preferences from XML
addPreferencesFromResource(R.xml.preferences);
}
, infine, nella mia attività principale, ho preferenze specifiche in questo modo:
SharedPreferences preferences = getSharedPreferences(preferencesName, MODE_PRIVATE);
String somePreference = preferences.getString("somePreference", defaultValue);
Altri suggerimenti
In qualche modo io non sono degno di commentare, ma di scrivere una risposta, così qui andiamo: Mi piacerebbe davvero sapere come usare sharedPreferences con PreferencesActivity invece di DefaultSharedPreferences.
Un modo mi viene in mente per ottenere questo risultato è lasciare l'preferenceActivity salvare i valori per defaultSharedPreferences e poi leggere questi valori fuori e salvarli in uno sharedPreferences associati ad un nome che corrisponda al tipo di valori salvati.
Ma questo sembra molto sbagliato. Così come si fa ragazzi fare questo? O si fa a salvare tutti i vostri valori da qualsiasi PreferencesActivties in defaultSharedPreferences?
È possibile utilizzare PreferenceManager per raggiungere l'obiettivo.