Xamarin Android - 从 ppreferencesFragment 获取首选项



我有一个应用程序,它使用首选项屏幕(复选框)供用户打开和关闭某些选项。膨胀 xml 文件的首选项片段如下所示:

public class BrandsFragment : PreferenceFragment 
    {
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            AddPreferencesFromResource (Resource.Menu.brandPrefs);
            var prefs = PreferenceManager.GetDefaultSharedPreferences(this.Activity);
        }
}

这工作正常,我可以成功更改首选项。

但是,我需要做的是从我的 Main 活动(不是片段)中的 OnCreate 方法获取首选项。

这是我尝试过的:

protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            var prefs = PreferenceManager.GetDefaultSharedPreferences(this);
            wantGeneral = prefs.GetBoolean ("checkbox_preference_general", true);
            Console.WriteLine ("Pref is " + wantGeneral);
            SetContentView(Resource.Layout.NavigationDrawer);
             .......
}

但是,无论选中复选框如何,"wantGeneral"首选项始终会返回为真。很明显,从我的活动来看,它没有成功抓取偏好。

我需要做什么才能从活动中获得首选项?

看来是

我没有好好考虑好。我需要将代码移动到 OnResume() 或其他在我更改设置页面中的首选项后被调用的地方。这样它就可以拉入最新设置。

最新更新