android checkbox 怎么设置复选框的只读效果不让用户勾选

2025-05-19 16:20:24
推荐回答(2个)
回答(1):

  提到只读,很容易想到使用readonly属性,但是对于复选框来说,这个属性和期望得到的效果是有差别的。原因在于readonly属性关联的是页面元素的value属性(例如textbox,设置了readonly就不能修改输入框的文本内容),而复选框的勾选/取消并不改变其value属性,改变的只是一个checked状态。所以对于checkbox来说,设置了readonly,仍然是可以勾选/取消的。效果如下:
  
  option a
option b
option c option a
option b
option c
  和readonly类似的,还有一个disabled属性,这个属性的作用是设置页面元素为不可用,即不可进行任何交互操作(包括不可修改value属性、不可修改checked状态等)。效果如下:
  
  option a
option b
option c option a
option b
option c
  从上面我们可以看到,无论是readonly还是disabled,都没有实现我们期望的效果。既然直接实现不了,那么我们可以变通一下,模拟实现。代码如下:
  

回答(2):

android中checkbox组件提供了一个设置已经选中的方法,也就可以实现已读或者未读,当用户点击checkbox时,将checkbox设置为已经选中,就是只读的效果,用户不能再次点击,如下代码:

checkbox.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
checkbox.setCheck(true);
   }
   });

}

Android checkbox复选框是一个 ON/OFF 开关,可以由用户切换。用户可选择的选项不是相互排斥的一组时,应该使用复选框。