首页 > 解决方案 > 如何知道使用sharedpreference在android中点击的最后一个按钮?

问题描述

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

编码:

私人共享偏好共享偏好;

SharedPreferences.Editor 编辑器;

在 onCreate 中初始化:

sharedPreferences = getSharedPreferences("MyPref", Context.MODE_PRIVATE);

编辑器 = 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();
}

标签: androidsharedpreferences

解决方案


问题在于您的情况if (sharedPreferences.getString("lamp", "on")),您没有将此字符串与任何内容进行比较,或者使用

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

或者

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

注意这里(“lamp”,“on”)第一个参数是标识,第二个是默认值,以防那里还没有存储任何内容。

在SharedPreferences中查看更多信息


推荐阅读