33

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

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

4

4 回答 4

64

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

从文档中:

定义此视图是否响应点击事件。

如果它不能对点击事件做出反应,那么它实际上变得不可检查。

于 2012-06-26T18:30:36.427 回答
14
<CheckBox
        android:id="@+id/blahblah"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:enabled="false" />

在你的代码中你可以调用cbox.setChecked(boolean)

于 2012-06-26T18:30:11.953 回答
10

扩展 crocboy 和 nicholas.hauschild 所说的内容。

在你的 XML 中设置它

    android:enabled="false" 

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

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

    android:clickable="false"

这是制作红色 RadioButton 的代码,选中时会变为绿色(在您的代码中),但用户无法检查。

    android:checked="false"
    android:textColor="#d1d2d4"
    android:buttonTint="#d1202d"
    android:textColorHighlight="#248d51"
    android:clickable="false"

这是检查它的代码(这是使用JSON:所以它正在检查english=="yes")

    String yes = "yes";
    if(yourObject.english.equals(yes)) {
        if (m_english.isChecked()) {/*do nothing */}
        else m_english.toggle();
    } 
于 2016-03-24T13:14:44.253 回答
9

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

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

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

据说它已被弃用,但可能会根据您的 traget SDK 工作。

希望有帮助!

于 2012-06-26T18:33:17.280 回答