У меня есть метод savePreferences и loadPreferences записать следующий образом MyClass (который является активностью):доступа к другим методам классов игровой SharedPreferences от BroadcastReceiver
private void savePreference(String key, boolean value) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean toggleValue = sharedPreferences.getBoolean("ToggleValue", true);
Editor editor = sharedPreferences.edit();
editor.putBoolean(key, value);
editor.commit();
}
public void loadPreferences() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean toggleValue = sharedPreferences.getBoolean("ToggleValue", true);
if (toggleValue) {
toggle.setChecked(true);
alertStatus=true;
} else {
toggle.setChecked(false);
alertStatus=false;
}
myHold.setStatus(alertStatus);
}
У меня также есть класс BroadcastReceiver имени MyBroadCast
В onReceive()
метод BroadCastReceiver
, я хочу позвонить loadPreferences()
, чтобы загрузить настройки. Как я могу это сделать? Я попытался сделать объект из MyClass
и вызова .loadPreferences()
, но это дало бы мне исключения нулевого указателя в этой строке loadPreferences
класса:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
Im немного запутался в вашем коде. В приемнике я вызываю loadTogglePreferences()? Как мне это назвать? – user2779837
вам нужно вызвать 'YourActivityClass.loadTogglePreferences (context)' – flx