Se si utilizza PreferenceActivity implicitamente si utilizza un file SharedPreference. Quindi, al di fuori di PreferenceActivity è possibile accedere al file SharedPrefence e modificarlo. Presto, tali cambiamenti si rifletteranno sulla tua PreferenceActivity.
È necessario un contesto per accedere a SharedPreference. Aspettiamo, ad esempio, il metodo onCreate di altre sempliciAttività.
UPDATE: Con questo approccio non sono in grado di attivare/disattivare gli elementi. È possibile modificare i loro valori o rimuoverli
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
// Restore preferences
SharedPreferences settings = getPreferences(MODE);
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
//change your setting here
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
altro modo, e il mio parere migliore e più facile è Fornire risorse alternative. Puoi fornire molti file xml, che definiscono le impostazioni dell'app, in base al livello dell'API Android, utilizzando un qualificatore di risorsa. Ad esempio: v2, v17.
res-v4
setting.xml
res-v17
setting.xml -> This file can include specific Jelly Beans configs
fonte
2013-03-06 16:09:37
per quanto riguarda la prima soluzione, gli articoli non possono essere abilitati/disabilitati quindi non saprò se sono compatibili con questa versione di Android o meno. La tua seconda soluzione è la mia risposta.Il codice di programmazione Bruno Mateus –
Siete i benvenuti. –