В моем приложении есть кнопка (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();
}
Используйте эту внутреннюю часть Ваш общедоступный класс, с которым 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 возвращают пустой указатель, если ключ не существует