保存整数的sharedPreferences



我目前正在构建一个几乎可以发布的应用程序,但我遇到了一个问题,我被困了一段时间。我的应用程序包含一个按钮,单击后会将其颜色更改为红色或绿色,这表明哪种颜色可以动态更改。我现在不想用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);
}
});

不需要保存integer,而是保存一些string来设置颜色:

单击button时,将color保存为string:

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()中进行活动:

在这条线下:

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);
}

相关内容

  • 没有找到相关文章

最新更新