将数据保存在 android 个片段中
Save data in android fragment
我正在开发 Xamarin Android 应用程序。我不知道如何保存我在 myfragment.I 中拥有的变量值,想要恢复该变量的值当我完全关闭后重新打开我的应用程序时 it.How 我可以实施它吗?
您可能想使用 SharedPreferences(Xamarin 中的 ISharedPreferences):
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext);
ISharedPreferencesEditor editor = prefs.Edit ();
editor.PutString ("your_string_key", "your_string_value");
editor.Apply();
您当然也可以保存其他类型的数据
这是我使用的示例,我将共享首选项 (SettingsPreferences) 中的值保存在视图模型的 属性 中:
SpinnerItem _selectedNumberPlayers;
public SpinnerItem SelectedNumberPlayers
{
get { return _selectedNumberPlayers; }
set
{
if (_selectedNumberPlayers != value)
{
_selectedNumberPlayers = value;
SettingsPreferences.SelectedNumberPlayers = _selectedNumberPlayers.Index;
FireMyPlayersChanged(AppSection.Settings);
RaisePropertyChanged(() => SelectedNumberPlayers);
}
}
}
这是我的 SettingsPreferences.SelectedNumberPlayers:
public static int SelectedNumberPlayers
{
get
{
return Settings.AppSettings.GetValueOrDefault(StringConstants.SelectedNumberPlayers, SelectedNumberPlayersDefault);
}
set
{
Settings.AppSettings.AddOrUpdateValue(StringConstants.SelectedNumberPlayers, value);
}
}
其中 Settings.AppSettings 是来自 XAM 设置 nuget 包的 CrossSettings.Current。
要在您的应用程序启动时读取您的变量,只需执行如下操作:
var myVar = SettingsPreferences.SelectedNumberPlayers;
伙计们,我已经在片段中使用以下代码解决了这个问题:
protected void saveset(){
var prefs =this.Activity.GetSharedPreferences("MyApp",FileCreationMode.Private);
var prefEditor = prefs.Edit();
prefEditor.PutString ("LoginUserName",LoginUserName.Text.Trim());
prefEditor.PutString ("ProfilePicture",ImageUrl);
prefEditor.PutString ("UserID", User_Id);
prefEditor.Commit();
}
protected void retrieveset(){
//retreive
var prefs =this.Activity.GetSharedPreferences("MyApp", FileCreationMode.Private);
LoginUserName.Text= prefs.GetString ("LoginUserName", string.Empty);
ImageUrl= prefs.GetString ("ProfilePicture", string.Empty);
User_Id = prefs.GetString ("UserID", string.Empty);
}
我正在开发 Xamarin Android 应用程序。我不知道如何保存我在 myfragment.I 中拥有的变量值,想要恢复该变量的值当我完全关闭后重新打开我的应用程序时 it.How 我可以实施它吗?
您可能想使用 SharedPreferences(Xamarin 中的 ISharedPreferences):
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext);
ISharedPreferencesEditor editor = prefs.Edit ();
editor.PutString ("your_string_key", "your_string_value");
editor.Apply();
您当然也可以保存其他类型的数据
这是我使用的示例,我将共享首选项 (SettingsPreferences) 中的值保存在视图模型的 属性 中:
SpinnerItem _selectedNumberPlayers;
public SpinnerItem SelectedNumberPlayers
{
get { return _selectedNumberPlayers; }
set
{
if (_selectedNumberPlayers != value)
{
_selectedNumberPlayers = value;
SettingsPreferences.SelectedNumberPlayers = _selectedNumberPlayers.Index;
FireMyPlayersChanged(AppSection.Settings);
RaisePropertyChanged(() => SelectedNumberPlayers);
}
}
}
这是我的 SettingsPreferences.SelectedNumberPlayers:
public static int SelectedNumberPlayers
{
get
{
return Settings.AppSettings.GetValueOrDefault(StringConstants.SelectedNumberPlayers, SelectedNumberPlayersDefault);
}
set
{
Settings.AppSettings.AddOrUpdateValue(StringConstants.SelectedNumberPlayers, value);
}
}
其中 Settings.AppSettings 是来自 XAM 设置 nuget 包的 CrossSettings.Current。
要在您的应用程序启动时读取您的变量,只需执行如下操作:
var myVar = SettingsPreferences.SelectedNumberPlayers;
伙计们,我已经在片段中使用以下代码解决了这个问题:
protected void saveset(){
var prefs =this.Activity.GetSharedPreferences("MyApp",FileCreationMode.Private);
var prefEditor = prefs.Edit();
prefEditor.PutString ("LoginUserName",LoginUserName.Text.Trim());
prefEditor.PutString ("ProfilePicture",ImageUrl);
prefEditor.PutString ("UserID", User_Id);
prefEditor.Commit();
}
protected void retrieveset(){
//retreive
var prefs =this.Activity.GetSharedPreferences("MyApp", FileCreationMode.Private);
LoginUserName.Text= prefs.GetString ("LoginUserName", string.Empty);
ImageUrl= prefs.GetString ("ProfilePicture", string.Empty);
User_Id = prefs.GetString ("UserID", string.Empty);
}