保存整数的sharedPreferences [重复]

问题描述 投票:0回答:1

我目前正在建立一个应用程序,这是几乎准备发布,但我得到了一个问题,我被卡住了安静的一段时间。我的应用程序包含一个按钮,一旦点击改变其颜色为红色或绿色,这表明可以动态变化。我现在想用sharedPreferences来保存我的Button的状态,但我尝试的一切都失败了。我知道这听起来很粗鲁,但如果你能告诉我你会怎么做,那将是非常酷的。

所以这就是我的类,我的项目的数据存储在

public class MyItem {

private String taskText;




public MyItem(String line1) {
    taskText = line1;



}

public String getTaskText() {
    return taskText;
}


}

这是我创建的OnClick方法,它可以改变我的Button的颜色。我试图保存 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);
            }
        });
java android database save sharedpreferences
1个回答
0
投票

不需要保存 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);
}
© www.soinside.com 2019 - 2024. All rights reserved.