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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top