我正在制作的程序有几个视图,用户试图在其中基本上找出很多布尔值。听起来很奇怪,但我的意思是我的设备将通过蓝牙连接到另一台设备,然后读取该设备的状态。我基本上显示该设备当前状态的清单。因此,根据该设备正在执行的操作,会选中不同的复选框。有没有办法使所有复选框都不可选择?
更好的是,有没有办法将其硬编码到 XML 文件中?
您是否考虑过将 android:clickable
用于复选框的 xml 属性?
从文档中:
定义此视图是否对单击事件做出反应。
如果它无法对点击事件做出反应,那么它实际上变得无法检查。
<CheckBox
android:id="@+id/blahblah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false" />
在您的代码中,您可以调用cbox.setChecked(boolean)
来扩展crocboy和nicholas.hauschild所说的话。
在 XML 中设置此项
android:enabled="false"
将使按钮/复选框灰显,以显示它已被禁用
执行此操作的另一种方法是将其设置为:
android:clickable="false"
下面是制作红色单选按钮的代码,选中时变为绿色(在您的代码中),但用户无法检查。
android:checked="false"
android:textColor="#d1d2d4"
android:buttonTint="#d1202d"
android:textColorHighlight="#248d51"
android:clickable="false"
这是检查它的代码(这是使用 JSON:所以它正在检查英语=="是")
String yes = "yes";
if(yourObject.english.equals(yes)) {
if (m_english.isChecked()) {/*do nothing */}
else m_english.toggle();
}
看看这个: http://developer.android.com/reference/android/widget/CheckBox.html
您可以使用checkbox.setEnabled(false)
使其不可选择。
在你的XML中试试这个:android:enabled="false"
据说它已被弃用,但可能会根据您的 traget SDK 工作。
希望对您有所帮助!