gpt4 book ai didi

android - 更改 Android 开关状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:52 24 4
gpt4 key购买 nike

我目前正在开发一个有菜单的应用程序,菜单上的一个选项是“设置”,用户基本上可以在其中决定关闭声音和其他类似的东西。我目前在设置 Activity 中有两个开关。到目前为止,这是设置 Activity 的 Java 代码:

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;

}
});
}
}

我可以在我的其他 Activity 中使用 bool 值,因此 SharedPreference 工作正常。然而,当我回到我的菜单 Activity 并回到这个选项 Activity 时,开关的状态回到它的默认值 true,不管用户声明什么。无论如何我可以解决这个问题吗?

ding.setChecked(isDingChecked)

我想这并没有真正做任何事情。我知道我过去发布过一个类似的问题,只是没有太多 Activity ,我已经在这个问题上工作了很长一段时间。谢谢!

最佳答案

尝试这样的事情:

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_options);
ding = (Switch) findViewById(R.id.switch1);

//grab prefs first
final SharedPreferences examplePrefs = getSharedPreferences(PREFS,0);
final Editor editor = examplePrefs.edit();
ding.setChecked(examplePrefs.getBoolean("your_key", false)); //false default


ding.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

//commit prefs on change
editor.putBoolean("your_key", isChecked);
editor.commit();

System.out.println(isDingChecked + " is ding checked");
}
});

关于android - 更改 Android 开关状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25945742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com