【发布时间】:2014-11-17 07:06:52
【问题描述】:
我一直在尝试做的是在使用共享首选项按下按钮时保存按钮的状态。当按钮默认时,它是白色的,但当按下时,它是黑色的。即使当我按下返回按钮或从其他活动或应用程序返回时,我也希望该按钮保持黑色。几天来我一直在为这个问题苦苦挣扎,这让我觉得我编程不好。有人可以帮我吗?这是我的代码。
fb1 = (Button) findViewById(R.id.button1);
fb1.setBackgroundResource(R.drawable.not_pressed);
fb1.setOnClickListener(new OnClickListener() {
boolean isPressed = true;
//boolean isPressed1 = true;
@Override
public void onClick(View v) {
//isPressed = sharedPrefs.getBoolean("locked", false);
fb1.setEnabled(sharedPrefs.getBoolean("locked", true));
System.out.println("BOOL" + isPressed);
if (!isPressed) {
fb1.setBackgroundResource(R.drawable.not_pressed);
fr1 = 0;
//fb1.setEnabled(false);
//sharedPrefs.edit().putBoolean("locked", fb1.isEnabled()).commit();
} else {
fb1.setBackgroundResource(R.drawable.pressed);
fr1 = 128;
//fb1.setEnabled(true);
//savePreferences("locked", fb1.isEnabled());
sharedPrefs.edit().putBoolean("locked", fb1.isEnabled()).commit();
}
isPressed = !isPressed;
}
});
【问题讨论】:
-
你为什么注释掉 isPressed = sharedPrefs.getBoolean() 调用?如果您不更改其默认值,isPressed 将始终为真。此外,当您的按钮处于“按下”状态时,您只会将状态保存到共享首选项。