保存整数的 sharedPreferences [重复]
Posted
技术标签:
【中文标题】保存整数的 sharedPreferences [重复]【英文标题】:Save sharedPreferences of an Integer [duplicate] 【发布时间】:2020-05-02 20:13:37 【问题描述】:我目前正在构建一个几乎可以发布的应用程序,但是我遇到了一个问题,我被困了一段时间。我的应用程序包含一个按钮,一旦单击它就会将其颜色更改为红色或绿色,这表明哪个可以动态更改。我现在不想用 sharedPreferences 保存我的 Button 的状态。 但我尝试的一切都失败了。我知道这听起来很粗鲁,但如果你能告诉我你会怎么做,那就太酷了。
这就是我的班级,我的项目数据存储在
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);
);
【问题讨论】:
这能回答你的问题吗? How to use SharedPreferences in android to store, fetch and edit values 【参考方案1】:不需要保存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);
【讨论】:
以上是关于保存整数的 sharedPreferences [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Android SharedPreferences,如何保存一个简单的int变量[重复]