【问题标题】:How do I change the state of a switch in Android studio via a button?如何通过按钮更改 Android Studio 中的开关状态?
【发布时间】:2020-07-05 05:55:24
【问题描述】:

我正在尝试使用 Android Studio 构建一个应用,如果有人按下按钮,应用中的开关状态会从打开变为关闭,反之亦然。 (该应用程序将允许某人通过按一个按钮来打开应用内的所有功能,并通过按下另一个按钮来关闭应用内的所有功能)。

我不知道如何将两者联系在一起,因此我们将不胜感激。我没有任何代码可以显示,因为我不知道从哪里开始。

这里有两张图片以防万一,请不要笑,这是我的第一个android应用程序:)

【问题讨论】:

  • 你好,你是说实体灯开关吗?
  • 哦,不,抱歉,我会马上修改问题。这是我关于 stackoverflow 的第一个问题。
  • 欢迎来到.. 你可以看看ToogleButtons
  • 这实际上会有很大帮助。将我拥有的两个按钮更改为切换按钮。我现在面临的问题是在切换按钮的 IF 语句中实际关闭或打开开关所需的代码

标签: java android


【解决方案1】:

您可以在布局中添加ToggleButtonhere 中有多个类型

<ToggleButton
    android:id="@+id/btn1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOff="Unselected"
    android:textOn="Selected" />

并通过添加OnCheckedChangeListener来监听它的检查状态,并相应地改变状态:

ToggleButton button = findViewById(R.id.btn1);
button.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        if (isChecked) {
            // State is On
            // Run your code you want whenever the sate is ON

        } else {
            // State is OFF
            // Run your code you want whenever the sate is OFF
        }
    }
});

【讨论】:

    【解决方案2】:

    你应该看看MutableLiveData 每当您的应用程序的视图更改其状态(按下按钮)时,您都可以监听该事件附加并 Obsever 到 MutableLiveData,从而对更改做出反应(并更改开关位置)

    在高级视图中,代码如下所示:

    onCreate {
      MutableLiveData buttonPressed = false;
    }
    
    onCreateView {
      Switch switch = getSwitch();
    
      Button button = getButton();
      button.onClick {
        buttonPressed.value = true;
      }
    
      buttonPressed.observe {
       switch.toggle(); 
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2020-01-23
      • 2021-07-14
      • 2014-11-14
      相关资源
      最近更新 更多