2015-10-29 2 views
0

Я разрабатываю Приложение Xamarin для Android. Я не знаю, как сохранить значение переменной, которое у меня есть в myfragment. Мне нужно вернуть значение этой переменной при повторном открытии приложения после его полного закрытия. могу ли я его реализовать?Сохранить данные в андроидном фрагменте

ответ

0

ребята, я уже решить эту проблему, используя ниже код в фрагменте:

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); 
     } 
0

Вы, вероятно, хотите использовать SharedPreferences (ISharedPreferences в Xamarin):

ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext); 
ISharedPreferencesEditor editor = prefs.Edit(); 
editor.PutString ("your_string_key", "your_string_value"); 
editor.Apply(); 

Вы можете Offcourse сохранять другие типы данных, а также

0

Вот пример, который я использую, я сохраняю значение мои общие предпочтения (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 - это CrossSettings.Current из пакета nuget настроек XAM.

Чтобы прочитать переменную назад, когда начинается ваше приложение, просто сделать что-то вроде этого:

var myVar = SettingsPreferences.SelectedNumberPlayers; 
Смежные вопросы