Android - Как получить общие настройки из другого действия?

В моем приложении есть кнопка (activity1). Когда пользователь нажимает на нее, я не хочу, чтобы в игре был звук. Я подумал, что должен сделать это, используя общие настройки в activity1 в методе кнопки onClick:

SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("sound","1");
editor.commit();

Звук и игра запускаются в другом действии (activity2). Мне нужно прочитать там установленные общие настройки, но я не знаю, как это сделать.

Спасибо

Edit

Я пропустил эту строку:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(Activity1.this);

На основании вашей помощи в Activity2.class I прочтите такие настройки:

SharedPreferences myPrefs = getSharedPreferences("Activity1", MODE_PRIVATE);  //Activity1.class
String ifsound = myPrefs.getString("sound","");

 if (ifsound.equals("1"))
 {
     Toast.makeText(Activity1.this, "1", Toast.LENGTH_LONG).show();
 }
 else
 {
      Toast.makeText(Activity1.this, "0", Toast.LENGTH_LONG).show();
 }
  1. В Activity1.class я нажимаю кнопку, чтобы установить "звук" на "1".
  2. Я нажимаю на другой btn, который открывает Activity2.class, где я всегда получаю "0" в сообщении Toast.
  3. 12120]
35
задан erdomester 31 May 2011 в 11:22
поделиться

1 ответ

Используйте эту внутреннюю часть Ваш общедоступный класс, с которым MainActivity расширяет AppCompatActivity (или безотносительно)

public static void setDefaults(String key, String value, Context context) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString(key, value);
    editor.commit();
}

public static String getDefaults(String key, Context context) {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    return preferences.getString(key, null);
}

Затем использование эти функции:

String name = getDefaults("key_name", getApplicationContext());
setDefaults("key_name", "Matthew", getApplicationContext());

Функции getDefaults возвращают пустой указатель, если ключ не существует

0
ответ дан 27 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

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