Ric*_*ier 38 android xamarin.android xamarin
我想在我的Xamarin.Android项目中保存并检索一些应用程序设置.
我知道在Android(java)中,我使用类SharedPreferences
来存储这些信息,但我不知道如何将其转换为Xamarin C#.
当我在Xamarin Studio IDE中输入"SharedPreferences"时,没有自动完成,所以我不知道该使用什么.
初步搜索interwebs带我到一个相关的问题,但只包含Android java:
总结一下:
SharedPreferences
?Ric*_*ier 66
Xamarin.Android相当于SharedPreferences
一个名为的接口ISharedPreferences
.
以相同的方式使用它,您将能够轻松地移植Android代码.
例如,要bool
使用某些保存true/false,Context
您可以执行以下操作:
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
Run Code Online (Sandbox Code Playgroud)
访问保存的值:
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>);
Run Code Online (Sandbox Code Playgroud)
从这个示例中,您可以看到,一旦您知道要使用的正确C#接口,其余的就很容易了.关于如何使用SharedPreferences
更复杂的情况,有许多Android java示例,这些可以非常容易地使用ISharedPreferences
.
有关更多信息,请阅读此主题:
Mig*_*uez 24
您可以在Xamarin.Android中使用此示例作为SharedPreferences
首先,您需要使用:
ISharedPreferences //Interface for accessing and modifying preference data
ISharedPreferencesEditor // Interface used for modifying values in a ISharedPreferences
Run Code Online (Sandbox Code Playgroud)
您可以创建一个类似的类
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, "");
}
}
Run Code Online (Sandbox Code Playgroud)
来自活动.
Context mContext = Android.App.Application.Context;
AppPreferences ap = new AppPreferences (mContext);
Run Code Online (Sandbox Code Playgroud)
如果你想节省一些价值:
string key = "123123";
ap.saveAccessKey (key);
Run Code Online (Sandbox Code Playgroud)
如果你想获得价值
string key = ap.getAccessKey();
Run Code Online (Sandbox Code Playgroud)
我希望这个例子可以帮到你
我在使用PreferenceManager时遇到了麻烦,如示例所示.我在顶部添加了这个代码,现在我很好用它.
using Android.Preferences;
Run Code Online (Sandbox Code Playgroud)
另外,为了获得首选项,您必须将默认值添加为第二个参数,否则将无法编译
mInt = prefs.GetInt ("key_for_my_int_value", defaultInt);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29757 次 |
最近记录: |