В настоящее время я разрабатываю приложение, в котором есть меню, а один из параметров в меню - «Настройки», где пользователь может в принципе решить отключить звуки и другие подобные вещи. В настоящее время у меня есть два переключателя в настройках. Вот код Java для деятельности Настройки до сих пор:Изменение состояния переключателя Android
import android.support.v7.app.ActionBarActivity;
public class Options extends ActionBarActivity {
private Switch ding;
private Switch countdown;
public boolean isDingChecked;
public boolean isCountdownChecked;
public static final String PREFS = "examplePrefs";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_options);
ding = (Switch) findViewById(R.id.switch1);
ding.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SharedPreferences examplePrefs = getSharedPreferences(PREFS,0);
Editor editor = examplePrefs.edit();
editor.putBoolean("userMessage", isChecked);
editor.commit();
//System.out.println(examplePrefs.getBoolean("userMessage", isChecked));
isDingChecked = examplePrefs.getBoolean("userMessage", isChecked);
System.out.println(isDingChecked + " is ding checked");
ding.setChecked(isDingChecked);
}
});
countdown = (Switch) findViewById(R.id.switch2);
countdown.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something, the isChecked will be
// true if the switch is in the On position
isCountdownChecked = isChecked;
}
});
}
}
Я могу использовать логические значения в моей другой деятельности, поэтому SharedPreference работает отлично. Однако, когда я вернусь к своей активности в меню и вернусь к этой операции с параметрами, состояние переключателей вернется к значениям по умолчанию, являющимся истинными, независимо от того, что указывает пользователь. В любом случае, я могу это исправить?
ding.setChecked(isDingChecked)
На самом деле я ничего не делаю. Я знаю, что в прошлом я задавал вопрос, похожий на это, это просто, что у меня не было большой активности, и я уже давно занимаюсь этой проблемой. Благодаря!
получил это спасибо! – user2677095