在Android中设置用户首选项



我正在使用Xamarin并开始将iOS应用程序转换为Android应用程序的过程,在检索和设置首选项时遇到了障碍。在iOS中,我只需要使用NSUserDefaults.StandardUserDefaults获得NSUserDefaults,然后我可以使用BoolForKey获得bool,并用SetBool设置它。然而,我找不到与安卓系统相当的软件。

在Android中,我设置了一个Preferences.xml文件,如下所示:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
  <CheckBoxPreference
    android:key="pref_myPref"
    android:title="My Bool Pref"
    android:summary="A Boolean Preference"
    android:defaultValue="true"/>
</PreferenceScreen>

然后我可以这样做:

private ISharedPreferences _sharedPref = PreferenceManager.GetDefaultSharedPreferences(Setup.GetApplicationContext());

其中Setup.GetApplicationContext是一个静态方法,它返回我在创建Setup时保存的上下文,然后我可以使用获得我的首选项

_sharedPref.GetBoolean("pref_myPref", true);

但是ISharedPreferences没有任何Set...功能?!?如何在代码中设置偏好?

这是MVVMCross应用程序的一部分,设置代码应该位于视图模型的级别(IoC容器将酌情提供Settings服务的Android或iOS版本),所以我不想在视图中处理它。我尽量保持抽象。

我一直在看这个:

http://developer.android.com/guide/topics/ui/settings.html

但我很难翻译成Xamarin C#代码,并使其按我希望的方式工作。我希望能够取回我的CheckBoxPreference的一个实例,这样我就可以在不创建"活动"或视图的情况下设置该死的东西。

您可以。但它不仅仅是setBoolean()。

你必须这样做:

 _sharedPref.Edit().PutBoolean("key","value").Commit();
 // or
 _sharedPref.Edit().PutBoolean("pref_myPref", true).Commit();

相关内容

  • 没有找到相关文章

最新更新