【问题标题】:Can't get onSharedPreferenceChanged() to work无法让 onSharedPreferenceChanged() 工作
【发布时间】:2013-01-01 09:52:11
【问题描述】:

当用户从我的preferenceActivity 中的ListPreference 中选择特定项目时,我想显示一个对话框。但是,我无法让 onSharedPreferenceChanged() 工作。我在方法的开头放了一个Toast,它没有显示,所以方法甚至没有运行,这是为什么?

这是我的代码:(谢谢)

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();
        }

    }
}

我需要在这样的活动中实现它吗? (有没有试过,没区别)

    public class Preferences extends PreferenceActivity 
                  implements OnSharedPreferenceChangeListener {

【问题讨论】:

标签: java android sharedpreferences android-preferences preferenceactivity


【解决方案1】:

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);
}

【讨论】:

  • 嗯!我以为我以前尝试过..但它有效!非常感谢!
【解决方案2】:

您必须为要在onCreate 中显示对话框的特定首选项设置点击侦听器

PreferenceScreen ps2 = (PreferenceScreen) findPreference("ic_vol");
    ps2.setOnPreferenceClickListener(this);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 2014-12-26
    • 2017-12-22
    • 2012-02-28
    • 2015-12-01
    • 2012-01-29
    • 2014-12-16
    • 2013-04-19
    相关资源
    最近更新 更多