保存整数的 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变量[重复]

整数共享首选项始终返回0

我无法保存整数

SharedPreferences保存字符串[重复]

SharedPreferences 未保存在 onPause 方法中

从SharedPreferences保存并检索Intent