【问题标题】:How to edit SharedPreferences so that OnSharedPreferenceChanged is called如何编辑 SharedPreferences 以便调用 OnSharedPreferenceChanged
【发布时间】:2012-03-05 01:43:27
【问题描述】:

我有一个PreferenceScreen,其中有一个CheckBox Preference 和一个简单的Preference,它调用了一个自定义对话框。在这个自定义对话框中,用户可以选择一个数字。通过在此对话框中按 OK,我想通过编辑我的 sharedPreferences 来保存号码。保存后应该会自动调用OnSharedPreferenceChanged方法。

复选框首选项工作正常。

【问题讨论】:

  • 不知道你有没有试过stackoverflow.com/questions/3799038/…
  • 我不明白你想在这里展示什么...我正在注册和注销 onchangelistener 并且它有效,我知道它是因为它适用于 CheckBox Preference。在对话框中选择号码后,我想将号码保存在 SharedPreferences 中并保存一个号码应该自动调用 OnSharedPreferenceChanged 方法。我不知道这是否可能......

标签: android sharedpreferences


【解决方案1】:

您的自定义对话框应该扩展 DialogPreference。如果首选项已被修改,请调用 persistXXX()(XXX 是类型的名称),如下例所示:

@Override
public void onDialogClosed(final boolean positiveResult) {
    if( positiveResult && this.isPersistent() ) {
        final StringBuilder b = new StringBuilder();
        b.append(this.hour).append(':');
        if( this.minute < 10 )
            b.append('0');
        b.append(this.minute);
        this.persistString(b.toString());
    }
}

【讨论】:

  • 感谢您的回答。我会在接下来的几天里尝试并报告
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
相关资源
最近更新 更多