gpt4 book ai didi

android - onSharedPreferenceChanged 没有一直触发

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:23 24 4
gpt4 key购买 nike

我对这个方法有一个奇怪的问题。它被称为,当我编辑 EditTextPreference 时,只有当我更改值时,并且只有在我第一次更改时才在 MultiSelectListPreference 上。这是我的 fragment 代码。

public class PrefFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
addPreferencesFromResource(R.xml.my_preferences);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// DO STUFF
}

@Override
public boolean onPreferenceTreeClick(final PreferenceScreen preferenceScreen, final Preference preference) {
// TODO Auto-generated method stub
super.onPreferenceTreeClick(preferenceScreen, preference);
// DO STUFF

}

@Override
public void onResume() {
super.onResume();
// Set up a listener whenever a key changes
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
}

这是 my_preferences.xml 文件

<PreferenceCategory android:title="Title1" >
<EditTextPreference
android:dialogMessage="@string/pref_pers_1_msg"
android:dialogTitle="@string/pref_pers_1"
android:key="@string/pref_pers_1_key"
android:title="@string/pref_pers_1" />
<EditTextPreference
android:dialogMessage="@string/pref_pers_2_msg"
android:dialogTitle="@string/pref_pers_2"
android:key="@string/pref_pers_2_key"
android:title="@string/pref_pers_2" />
<EditTextPreference
android:dialogMessage="@string/pref_pers_3_msg"
android:dialogTitle="@string/pref_pers_3"
android:key="@string/pref_pers_3_key"
android:title="@string/pref_pers_3" />
</PreferenceCategory>
<PreferenceCategory android:title="Title2" >
<MultiSelectListPreference
android:dialogTitle="title_dialog"
android:entries="@array/array"
android:entryValues="@array/array_elements"
android:key="pref_pers_4"
android:title="Title2" />
</PreferenceCategory>

最佳答案

unregisterOnSharedPreferenceChangeListeneronPause() 移动到 onStop()

关于android - onSharedPreferenceChanged 没有一直触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16709359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com