是否可以取消选中复选框/单选按钮?

Jui*_*iCe 18 android

我正在制作的程序有几个视图,用户试图基本上找出很多布尔值.听起来很奇怪,但我的意思是我的设备将通过蓝牙连接到另一台设备,然后读取该设备的状态.我基本上显示了该设备当前状态的清单.因此,根据设备的功能,会检查不同的复选框.有没有办法让所有的复选框都不可选?

更好的是,有没有办法将其硬编码到XML文件中?

nic*_*ild 47

您是否考虑过使用android:clickable复选框的xml属性?

从文档:

定义此视图是否对单击事件做出反应.

如果它无法对点击事件做出反应,那么它实际上将无法检查.

  • android:clickable 和 android:enabled 有什么区别? (2认同)
  • “ clickable”用于确定是否应将click事件发送到“视图”。“启用”在“视图”中定义,但由其子类解释。http://developer.android.com/reference/android/view/View.html#isEnabled() (2认同)

Woo*_*dsy 13

<CheckBox
        android:id="@+id/blahblah"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:enabled="false" />
Run Code Online (Sandbox Code Playgroud)

在你的代码中你可以打电话 cbox.setChecked(boolean)


cro*_*boy 8

看看这个:http://developer.android.com/reference/android/widget/CheckBox.html

您可以使用checkbox.setEnabled(false)它使其无法选择.

在您的XML中尝试这个: android:enabled="false"

它应该被弃用,但可能会有效,具体取决于你的traget SDK.

希望有所帮助!


小智 6

扩展什么样的crocboy和nicholas.hauschild说.

在您的XML中设置它

    android:enabled="false" 
Run Code Online (Sandbox Code Playgroud)

将使按钮/复选框变灰,以显示它已被禁用

另一种方法是将其设置为:

    android:clickable="false"
Run Code Online (Sandbox Code Playgroud)

下面是制作一个红色的RadioButton的代码,在选中时(在代码中)变为绿色,但用户无法检查.

    android:checked="false"
    android:textColor="#d1d2d4"
    android:buttonTint="#d1202d"
    android:textColorHighlight="#248d51"
    android:clickable="false"
Run Code Online (Sandbox Code Playgroud)

这里是检查它的代码(这是使用JSON:所以它检查是否英语=="是")

    String yes = "yes";
    if(yourObject.english.equals(yes)) {
        if (m_english.isChecked()) {/*do nothing */}
        else m_english.toggle();
    } 
Run Code Online (Sandbox Code Playgroud)