いくつPreferenceFragment
かの異なるアイテムの同じ設定を変更するために使用される があります。明らかに、アイテムごとに設定値を異なるキーで保存する必要があります。そのため、フラグメントの作成後にすべての設定のキーを変更します。
設定は、通常どおり xml によって定義されます。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="_key_one"
android:title="Title of first preference" />
[... and more Preferences]
</PreferenceScreen>
キーを変更する PreferenceFragment:
public class ItemSettingPreferenceFragment extends PreferenceFragment {
private String mItemKey;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mItemKey = getArguments().getString('item_key'); //this will contain name of item
addPreferencesFromResource(R.xml.item_settings_preferences);
for (int i=0; i< getPreferenceScreen().getPreferenceCount(); i++){
final Preference pref = getPreferenceScreen().getPreference(i);
pref.setKey(mItemKey + pref.getKey());
}
}
}
現在、すべての環境設定には、「item1_key_one」のようなアイテムごとに一意のキーがあります
残念ながら、作成後、これらの環境設定は元のキー「_key_one」で値をロードして表示します
新しいキーの値をリロードして表示するように設定を強制するにはどうすればよいですか?