Android fragments 在android片段中保存数据

Android fragments 在android片段中保存数据,android-fragments,xamarin,mvvmcross,savestate,Android Fragments,Xamarin,Mvvmcross,Savestate,我正在开发Xamarin Android应用程序。我不知道如何保存myfragment中的变量值。我想在完全关闭应用程序后重新打开该应用程序时恢复该变量的值。如何实现它?您可能想使用SharedReferences(Xamarin中的IsSharedReferences): 当然,您也可以保存其他类型的数据以下是我使用的示例,我将共享首选项(设置引用)中的值保存在视图模型的属性中: SpinnerItem _selectedNumberPlayers; public SpinnerItem Se

我正在开发Xamarin Android应用程序。我不知道如何保存myfragment中的变量值。我想在完全关闭应用程序后重新打开该应用程序时恢复该变量的值。如何实现它?

您可能想使用SharedReferences(Xamarin中的IsSharedReferences):


当然,您也可以保存其他类型的数据

以下是我使用的示例,我将共享首选项(设置引用)中的值保存在视图模型的属性中:

SpinnerItem _selectedNumberPlayers;
public SpinnerItem SelectedNumberPlayers
{
    get { return _selectedNumberPlayers; }
    set
    {
        if (_selectedNumberPlayers != value)
        {
            _selectedNumberPlayers = value;

            SettingsPreferences.SelectedNumberPlayers = _selectedNumberPlayers.Index;

            FireMyPlayersChanged(AppSection.Settings);

            RaisePropertyChanged(() => SelectedNumberPlayers);
        }
    }
}
这是我的设置参考。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);
      }
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);
      }