Я использую SharedPreference в одном из своих действий, и я хочу ссылаться на то же самое в другом действии и извлекать его значение. Я делаю это следующим образом:Не получая точного значения общих предпочтений:
Класс 1
переменных класса Уровень:
String PREFS_NAME = "Login";
SharedPreferences sp;
Установка значения в SharedPreference
public void savePref(String key, boolean value) {
SharedPreferences sp = getSharedPreferences(PREFS_NAME,0);
Editor edit = sp.edit();
edit.putBoolean("loggdin", value);
edit.commit();
Toast.makeText(getApplicationContext(), "Login = " + value,
Toast.LENGTH_LONG).show();
}
класса 2
Переменные уровня Класс:
SharedPreferences sp;
String PREFS_NAME = "Login";
В OnCreate: (Пожалуйста, проверьте также комментарии)
SharedPreferences sp = getSharedPreferences(PREFS_NAME,0);
boolean channel = (sp.getBoolean("loggdin", true));// I get the value true or false depending on what I pass as a second argument here, pretty confused!
if (channel == true){
Toast.makeText(getApplicationContext(), "true"+channel, 10000).show();
}else {
Toast.makeText(getApplicationContext(), "false"+channel, 10000).show();
}
Невозможно понять, где я неправильно, какие-то намеки?
второй параметр является значением по умолчанию для получения, если в вашем общем предпочтении нет значения, что означает, что вы не можете установить логическое значение в редакторе – KDeogharkar
Да, как указано выше, я объявляю PREFS_NAME как в классах, так и в присваивать ему точно такую же строку. – User3
что тост показывает? – KDeogharkar