В Xamarin Android, как я могу получить и перезаписать сохраненное значение SharedPreference из одной активности в другую? [Дубликат]

Для любви к $ DEITY, пожалуйста, не выполняйте функцию ожидания ожидания ожидания. setTimeout и setInterval делают все, что вам нужно.

18
задан Armand 25 June 2015 в 15:17
поделиться

2 ответа

используйте getApplicationContext() вместо this в обоих действиях как:

. В активности A SharedPreferences следующим образом:

 private void SavePreferences(String key, String value){
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.commit();
        Intent sd=new Intent(this,Secongtess.class);
        startActivity(sd);
       }

и в действии B получают значение as :

 private void LoadPreferences(){   
       SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
     String  data = sharedPreferences.getString("name", "08:00") ;
     Toast.makeText(this,data, Toast.LENGTH_LONG).show();
   }

, поскольку, поскольку doc говорит:

getDefaultSharedPreferences (контекст контекста) :

Получает экземпляр SharedPreferences который указывает на файл по умолчанию, который используется средой предпочтений в данном контексте.

34
ответ дан ρяσѕρєя K 23 August 2018 в 20:26
поделиться

Чтобы сохранить значения в общих настройках:

SharedPreferences preferences==PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor=preferences.edit();
  editor.putString("Name","Harneet");
  editor.commit();

Чтобы получить значения из общих настроек:

SharedPreferences preferences==PreferenceManager.getDefaultSharedPreferences(this);
  String name=preferences.getString("Name","");
  if(!name.equalsIgnoreCase(""))
  {
    name=name+"  Sethi";  /* Edit the value here*/
  }

Для редактирования данных из sharedpreference

SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
 editor.putString("text", mSaved.getText().toString());
 editor.putInt("selection-start", mSaved.getSelectionStart());
 editor.putInt("selection-end", mSaved.getSelectionEnd());
 editor.commit();

Для извлечения данных из общих предпочтений

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) 
{
  //mSaved.setText(restoredText, TextView.BufferType.EDITABLE);
  int selectionStart = prefs.getInt("selection-start", -1);
  int selectionEnd = prefs.getInt("selection-end", -1);
  /*if (selectionStart != -1 && selectionEnd != -1)
  {
     mSaved.setSelection(selectionStart, selectionEnd);
  }*/
}
2
ответ дан Goofy 23 August 2018 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: