我目前正在构建一个应用程序,即将发布,但我遇到了一个问题,我暂时无法解决。我的应用程序包含一个按钮,一旦单击,其颜色就会更改为红色或绿色,这表明可以动态更改。我现在不想用sharedPreferences 保存按钮的状态。 但我尝试的一切都失败了。我知道这听起来很粗鲁,但如果你能告诉我你会如何做,那就太酷了。
这就是我的类,我的项目数据存储在
public class MyItem {
private String taskText;
public MyItem(String line1) {
taskText = line1;
}
public String getTaskText() {
return taskText;
}
}
这是我创建的 OnClick 方法,它可以更改按钮的颜色。我正在尝试保存clicks
mButton = itemView.findViewById(R.id.button3);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicks++;
if (clicks % 2 == 0)
mButton.setBackgroundResource(R.drawable.button_green);
else
mButton.setBackgroundResource(R.drawable.button_red);
}
});
最佳答案
无需保存整数
,而是保存一些字符串
来设置颜色:
当您单击按钮
时,将颜色
另存为字符串
:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicks++;
if (clicks % 2 == 0)
mButton.setBackgroundResource(R.drawable.button_green);
//save as green
SharedPreferences.Editor editor = getSharedPreferences("button",
MODE_PRIVATE).edit();
editor.putString("color", "green");
editor.apply();
else
mButton.setBackgroundResource(R.drawable.button_red);
//save as red
SharedPreferences.Editor editor = getSharedPreferences("button",
MODE_PRIVATE).edit();
editor.putString("color", "red");
editor.apply();
}
});
现在在 onCreate()
的 Activity 中:
在此行下:
mButton = findViewById(......);
添加此:
//get the color that was saved
SharedPreferences pref = getSharedPreferences("button", MODE_PRIVATE);
String color = pref.getString("color", "default");
if(color.equals("green")){
//color was green
mButton.setBackgroundResource(R.drawable.button_green);
}else{
//color was red
mButton.setBackgroundResource(R.drawable.button_red);
}
关于java - 保存整数的共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61565689/