当前位置: 首页 > 知识库问答 >
问题:

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

庾勇军
2023-03-14

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

守则:

私人共享引用共享引用;

共享偏好。编辑器编辑器;

onCreate中的初始化:

[CNNVD]SharedPre昨夜共享偏好("MyPref", Context.MODE_PRIVATE);

编辑器references.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个答案

闻人花蜂
2023-03-14

您需要检查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
}
华俊弼
2023-03-14

问题在于您的条件如果(sharedPreferences.getString(“lamp”,“on”)),您没有将此字符串与任何内容进行比较,请使用

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

将值保存为布尔值editor.put布尔值(灯,true);,然后您可以比较您所做的方式:if(share dPreferences.getString(灯,true))

请注意,此处(“lamp”、“on”)第一个参数是标识,第二个参数是默认值,以防尚未存储任何内容。

请参阅SharedReferences中的更多内容

 类似资料:
  • 问题内容: 我的页面上有几个按钮,但是我不确定如何知道单击了哪个按钮。这是我的两个按钮的标记: 问题答案: 使用类似如下的HTML表单: 使用的PHP代码如下所示: 您应该始终 假定或默认为第一个提交按钮以HTML源代码的形式出现 。实际上,在以下情况下,各种浏览器会可靠地发送带有发布数据的提交按钮的名称/值: 用户使用鼠标或定位设备从字面上单击提交按钮 或者将焦点放在“提交”按钮(它们在选项卡上

  • 在getView(int位置,视图转换视图,视图组父)方法的适配器如何知道位置是否反映行的最后一列? 例如: 假设这是GridView,那么元素3、6和9分别是第1、2和3行的最后一列。

  • 我有两个大小相同的ArrayList,一个用于JButton,一个用于JTextField。单击按钮时,相应的文本字段应更新。我怎么能意识到? p、 jcomponents对(jbutton jtextfield)的数量不是固定的。它们是为用户添加或删除而设计的。但是,它们必须按固定顺序排列。 我如何知道JButton ArrayList中的索引“I”?

  • 编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,

  • 所以我正在处理一个列表视图,我想实现一个删除按钮。但由于某种原因,每当我按下任何列表项上的delete按钮时,列表中的最后一项就会自动删除。我试过了几乎所有的东西,但是我无法理解我如何能够知道按钮被点击的项目的索引,这样我就可以轻松地删除那个特定的项目。 这是代码:

  • 在我的程序中,它将单击浏览器中的一个按钮,并且在该页面中,应该会出现另一个按钮。出现该按钮后,我的程序将立即运行下一个操作来单击下一个按钮。我目前收到此错误: ElementNotVisibleException:消息:元素不可见 因此,我假设我正在调用该操作,以便在该按钮出现之前单击下一个按钮。我的问题是,我该怎么做才能让我的程序等到我可以点击按钮,再点击按钮? 这就是我的程序底部的代码的样子。