PreferenceAcitivityを暗黙的に使用する場合は、SharedPreferenceファイルを使用しています。したがって、PreferenceAcitivityの外部で、SharedPrefenceファイルにアクセスして変更することができます。間もなく、これらの変更はPreferenceActivityに反映されます。
SharedPreferenceにアクセスするには、コンテキストが必要です。たとえば、他のsimpleAcitivityのonCreateメソッドを楽しみにしています。
更新:
このアプローチを使用すると、アイテムを有効/無効にすることはできません。それらの値を変更または削除できます
@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();
}
}
他の方法で、私の意見では、より良く、より簡単に代替リソースを提供することです。リソース修飾子を使用して、Android APIレベルに応じて、アプリの設定を定義する多くのxmlファイルを提供できます。例:v2、v17。
res-v4
setting.xml
res-v17
setting.xml -> This file can include specific Jelly Beans configs