繁体   English   中英

如何通过按钮更改Android studio中开关的state?

[英]How do I change the state of a switch in Android studio via a button?

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

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

这里有两张图片,以防万一,请不要笑,这是我的第一个 android 应用程序:) 在此处输入图像描述

您应该查看MutableLiveData每当您的应用程序的视图发生更改时,它是 state(按下按钮),您可以收听该事件附加并观察到 MutableLiveData,从而对更改做出反应(并更改开关位置)

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

onCreate {
  MutableLiveData buttonPressed = false;
}

onCreateView {
  Switch switch = getSwitch();

  Button button = getButton();
  button.onClick {
    buttonPressed.value = true;
  }

  buttonPressed.observe {
   switch.toggle(); 
  }
}

您可以在布局中添加一个ToggleButton这里有多个类型

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

并通过添加OnCheckedChangeListener来听其检查 state ,并相应地更改 state :

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
        }
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM