如何在Xamarin.Android中使用SharedPreferences?
我想保存和检索我的Xamarin.Android项目中的一些应用程序设置。
我知道在Android(java)中,我使用SharedPreferences
类来存储这些信息,但我不知道如何将其转换为Xamarin C#。
当我在Xamarin Studio IDE中键入“SharedPreferences”时,没有自动完成,所以我不知道该怎么用。
最初的interwebssearch带我到一个相关的问题,但只包含Android的Java:
- 在xamarin中使用共享首选项
所以总结一下:
- 什么是Xamarin Android C#相当于 Android Java的
SharedPreferences
?
Xamarin.Android相当于SharedPreferences
是一个名为ISharedPreferences
的接口。
以相同的方式使用它,您将可以轻松地跨越Android代码。
例如,要使用某些Context
保存true / false bool
,可以执行以下操作:
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext); ISharedPreferencesEditor editor = prefs.Edit (); editor.PutBoolean ("key_for_my_bool_value", mBool); // editor.Commit(); // applies changes synchronously on older APIs editor.Apply(); // applies changes asynchronously on newer APIs
访问保存的值使用:
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext); mBool = prefs.GetBoolean ("key_for_my_bool_value", <default value>); mInt = prefs.GetInt ("key_for_my_int_value", <default value>); mString = prefs.GetString ("key_for_my_string_value", <default value>);
从这个示例中,你可以看到,一旦你知道了正确的C#接口使用,其余的很容易。 有很多关于如何在更复杂的情况下使用SharedPreferences
Android java示例,并且可以使用ISharedPreferences
轻松移植这些ISharedPreferences
。
欲了解更多信息,请阅读此主题:
- Xamarin论坛上的Android共享首选项
你可以在Xamarin.Android中为你的SharedPreferences使用这个例子
首先,你需要使用:
ISharedPreferences //Interface for accessing and modifying preference data ISharedPreferencesEditor // Interface used for modifying values in a ISharedPreferences
你可以创build一个类似的类
public class AppPreferences { private ISharedPreferences mSharedPrefs; private ISharedPreferencesEditor mPrefsEditor; private Context mContext; private static String PREFERENCE_ACCESS_KEY = "PREFERENCE_ACCESS_KEY"; public AppPreferences (Context context) { this.mContext = context; mSharedPrefs = PreferenceManager.GetDefaultSharedPreferences(mContext); mPrefsEditor = mSharedPrefs.Edit (); } public void saveAccessKey(string key){ mPrefsEditor.PutString(PREFERENCE_ACCESS_KEY, key); mPrefsEditor.Commit(); } public string getAccessKey(){ return mSharedPrefs.GetString(PREFERENCE_ACCESS_KEY, ""); } }
从活动。
Context mContext = Android.App.Application.Context; AppPreferences ap = new AppPreferences (mContext);
如果你想保存一些值:
string key = "123123"; ap.saveAccessKey (key);
如果你想获得价值
string key = ap.getAccessKey();
我希望这个例子可以帮助你
例如,使用PreferenceManager遇到了麻烦。 我在顶部添加了这个代码,现在我很好用。
using Android.Preferences;
不知道如果这是正确的方式,
另外,为了获得首选项,你必须添加默认值作为第二个参数,否则将不能编译
mInt = prefs.GetInt ("key_for_my_int_value", defaultInt);
- Android:无法将@ drawable /图片转换为绘图
- 连接Android Studio与SVN
- 改变android项目的名字
- Android GridView绘制分隔线
- HTTP Post请求使用HttpClient需要2秒钟,为什么?
- 在android应用程序Toolbar.setTitle方法没有效果 – 应用程序名称显示为标题
- Android – 使用自定义字体
- 从onRequestPermissionsResult()中调用DialogFragment的show()会导致Marshmallow中的IllegalStateException
- 在左上angular的ConstraintLayout视图