无法获取onShared preferenceChanged()工作 [英] Can't get onSharedPreferenceChanged() to work
问题描述
我想,当用户在我的preferenceActivity选择从列表preference的特定项目显示一个对话框。但是,我不能得到onShared preferenceChanged()工作。我已经把吐司在方法的开始,它并不显示,因此该方法甚至不运行通过,这是为什么?
下面是我的code:(谢谢)
公共无效onShared共享preferences preferenceChanged(共享preferences,
字符串键){ Toast.makeText(preferences.this,preFS更改,Toast.LENGTH_SHORT)
。显示(); 如果(key.equals(boolean_ad_type)){ 共享preferences = preferenceManager.getDefaultShared preferences(本);
字符串值=共享preferences.getString(boolean_ad_type,);
如果(值= NULL&放大器;!&安培; value.equals(弹出式广告)){ Toast.makeText(preferences.this,弹出广告选择
Toast.LENGTH_SHORT).show();
} }
}
和我需要实现它在这样的活动? (我试过有和没有,没有区别)
公共类preferences扩展preferenceActivity
实现OnShared $ P $ {pferenceChangeListener
<一个href=\"http://stackoverflow.com/questions/3799038/onshared$p$pferencechanged-not-fired-if-change-occurs-in-separate-activity\">onShared$p$pferenceChanged如果在不同的活动发生的变化没有被解雇?
公共类MyActivity扩展preferenceActivity工具
OnShared $ P $ {pferenceChangeListener@覆盖
保护无效onResume(){
super.onResume();
//设置一个监听器,每当一个关键的变化
GET preferenceScreen()。getShared preferences()
.registerOnShared preferenceChangeListener(本);
}@覆盖
保护无效的onPause(){
super.onPause();
//注销监听器每当重大变化
GET preferenceScreen()。getShared preferences()
.unregisterOnShared preferenceChangeListener(本);
}
I wanna display a dialog when the user selects a specific item from a ListPreference in my preferenceActivity. But, I cannot get the onSharedPreferenceChanged() to work. I've put a Toast in the beginning of the method, and it does not show, so the method doesn't even run through, why is this?
Here's my code: (Thanks)
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
Toast.makeText(Preferences.this, "prefs Changed", Toast.LENGTH_SHORT)
.show();
if (key.equals("boolean_ad_type")) {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String value = sharedPreferences.getString("boolean_ad_type", "");
if (value != null && value.equals("Pop-up Ads")) {
Toast.makeText(Preferences.this, "Pop-up Ads Selected",
Toast.LENGTH_SHORT).show();
}
}
}
And do I need to implement it in the activity like this? (I've tried with and without, no difference)
public class Preferences extends PreferenceActivity
implements OnSharedPreferenceChangeListener {
onSharedPreferenceChanged not fired if change occurs in separate activity?
public class MyActivity extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
@Override
protected void onResume() {
super.onResume();
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
这篇关于无法获取onShared preferenceChanged()工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!