我有一个应用程序,它使用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);
.......
}
但是无论复选框是否被选中,“wantGeneral”首选项总是会返回 true。很明显,从我的活动中,它没有成功获取偏好。
为了从活动中获取偏好,我需要做什么?