Xamarin android OnSharedPreferenceChangeListener

本文关键字:OnSharedPreferenceChangeListener android Xamarin | 更新日期: 2023-09-27 18:20:56

我有这个活动,并且没有调用OnSharedPreferenceChanged时遇到问题。我的用例是,我想在偏好描述中显示偏好值。下面翻译的代码是从java翻译过来的,在那里工作非常好。

[Activity]          
public class PrefActivity : PreferenceActivity, ISharedPreferencesOnSharedPreferenceChangeListener
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        AddPreferencesFromResource(Resource.Xml.preferences);
    }
    protected override void OnResume()
    {
        base.OnResume();
        PreferenceScreen.SharedPreferences.
            RegisterOnSharedPreferenceChangeListener(this);
    }
    protected override void OnPause()
    {
        base.OnPause();
        PreferenceScreen.SharedPreferences.
            UnregisterOnSharedPreferenceChangeListener(this);
    }
    #region ISharedPreferencesOnSharedPreferenceChangeListener implementation
    public void OnSharedPreferenceChanged(ISharedPreferences sharedPreferences, string key)
    {
        Preference pref = FindPreference(key);
        if (pref is ListPreference)
        {
            ListPreference listPref = (ListPreference)pref;
            listPref.Summary = listPref.Entry;
        }
    }
    #endregion
} 

我正在使用Xamarin。上面的Android v4.6.8代码是我最后一次尝试使其工作。我还尝试使用PreferenceScreen.PreferenceChange事件来处理偏好更改,但没有结果。

Tahnks寻求帮助。

Xamarin android OnSharedPreferenceChangeListener

我找到了解决方案!更改

PreferenceScreen.SharedPreferences.
RegisterOnSharedPreferenceChangeListener(this);

PreferenceManager.GetDefaultSharedPreferences(this).
RegisterOnSharedPreferenceChangeListener(this);

会成功的。

我希望它能帮助到别人。

相关文章:
  • 没有找到相关文章