Xamarin Android - 从preferenceFragment获取首选项

时间:2015-02-02 12:21:52

标签: android xamarin sharedpreferences preferencescreen

我有一个应用程序,它使用preferenceScreen(复选框)让用户打开和关闭某些选项。膨胀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);

             .......
}

但是“想要一般'无论选中的复选框如何,首选项始终都会返回true。很明显,根据我的活动,它没有成功获取首选项。

为了从活动中获取偏好,我需要做什么?

1 个答案:

答案 0 :(得分:2)

似乎我没有正确地思考它。我需要将代码移动到OnResume()或在我更改设置页面中的首选项后调用的其他地方。这样就可以进行最新的设置。