如何知道使用sharedpreference在android中单击的最后一个按钮?

时间:2019-11-04 17:46:40

标签: android sharedpreferences

我有两个按钮,现在如何再次启动活动时如何知道使用sharedpreference单击的最后一个按钮?

代码:

  

private SharedPreferences sharedPreferences;

     

SharedPreferences.Editor编辑器;

在onCreate中初始化:

  
    

sharedPreferences = getSharedPreferences(“ MyPref”,Context.MODE_PRIVATE);

         

editor = sharedPreferences.edit();

  

我试图这样做,但是绝对错误的方式

        if (sharedPreferences.getString("lamp", "on")) {

        Toast.makeText(this, "onnnn", Toast.LENGTH_SHORT).show();
    }
    if (sharedPreferences.getString("lamp", "off")){
        Toast.makeText(this, "offfff", Toast.LENGTH_SHORT).show();
    }

第一个按钮

 public void lampOff(View view) {
    Log.d(tag, "lampOFF");

    lamp_notConnected_Image.setVisibility(View.INVISIBLE);
    lamp_Connected_Image.setVisibility(View.VISIBLE);



    editor.putString("lamp", "off");
    editor.commit();
}

第二个按钮:

 public void lampOn(View view) {
    Log.d(tag, "lampO");

    lamp_notConnected_Image.setVisibility(View.VISIBLE);
    lamp_Connected_Image.setVisibility(View.INVISIBLE);

    editor.putString("lamp", "on");
    editor.commit();
}

2 个答案:

答案 0 :(得分:1)

问题出在您的情况if (sharedPreferences.getString("lamp", "on"))上,您没有将此字符串与任何东西进行比较,无论是使用

if (sharedPreferences.getString("lamp", "on").equals("on"))

将值另存为布尔值editor.putBoolean("lamp", true);,然后可以比较您的操作方式:if (sharedPreferences.getString("lamp", true))

请注意,这里(“灯”,“开”)的第一个参数是标识,第二个是默认值,以防万一。

SharedPreferences

中查看更多

答案 1 :(得分:1)

您需要在onCreate方法中检查共享首选项值,例如:

if (sharedPreferences.getString("lamp", "off").equals("on")) { //assumed "off" as default
    Toast.makeText(this, "onnnn", Toast.LENGTH_SHORT).show();
    // on button is pressed last time
}
else{
    Toast.makeText(this, "offfff", Toast.LENGTH_SHORT).show();
            // off button is pressed last time or no button press so far
}