java - 保存整数的共享首选项

标签 java android database save 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);
            }
        });

最佳答案

无需保存整数,而是保存一些字符串来设置颜色:

当您单击按钮时,将颜色另存为字符串:

    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/

相关文章:

java - Firebase 数据映射到 Java 类

java - 如何通过反射调用带有@transactional和@service注解的服务类中的方法?

java - 无限递归嵌套对象

android - Ionic 应用程序说在 Android 模拟器中运行,但不是

具有完整架构和有限数据的 MySQL 数据库转储

mysql - 在 phpMyAdmin 中使用文件夹组织数据库

mysql - 将多行转换为列

java - 如何在 SimpleAdapter 列表中添加多个标题

java - 将巨大的 JFrame 导出到文件

android - 从 Android 上的 .net Web 服务获取列表