Android 在带有自定义适配器的listview中将复选框设置为不可编辑
我有一个带有自定义适配器的listview。listview中的每个项目都有一个imageview、textview和一个复选框 我的要求是,如果特定项目中文本视图的值为“xyz”,我必须将该复选框设置为不可编辑(应始终选中该复选框,并且不允许用户取消选中) 我尝试过设置、Android 在带有自定义适配器的listview中将复选框设置为不可编辑,android,android-listview,Android,Android Listview,我有一个带有自定义适配器的listview。listview中的每个项目都有一个imageview、textview和一个复选框 我的要求是,如果特定项目中文本视图的值为“xyz”,我必须将该复选框设置为不可编辑(应始终选中该复选框,并且不允许用户取消选中) 我尝试过设置、setClickable(false)和setEnabled(false),但都不起作用。请看下面的代码 ` `你不需要一个onCheckedChangeListener吗 checkBox.setOnCheckedChang
setClickable(false)
和setEnabled(false)
,但都不起作用。请看下面的代码
`
`你不需要一个onCheckedChangeListener吗
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
}
}
你可以试试
checkBox.setOnClickListener(null)代码>好的,下面是我所做的
`
//if(teams.get(position).get("name").equalsIgnoreCase("xyz"))
if(view.getTag().toString().equalsIgnoreCase("xyz"))
{
Log.d(Const.TAG, "View is Clickable = "+view.isClickable());
view.setBackgroundColor(Color.BLUE);
checkBox.setClickable(false);
}
else
{
view.setClickable(false);
view.setBackgroundColor(Color.WHITE);
checkBox.setClickable(true);
}
`
坦率地说,我不确定这是否是最好的方法,但它奏效了。如果有人有更好的方法,请分享。我尝试将整个视图(listview项目)设置为可单击,并且成功了。现在无法单击该复选框。但是,当我滚动listview时,listview中的其他项也被设置为具有相同的属性
`
//if(teams.get(position).get("name").equalsIgnoreCase("xyz"))
if(view.getTag().toString().equalsIgnoreCase("xyz"))
{
Log.d(Const.TAG, "View is Clickable = "+view.isClickable());
view.setBackgroundColor(Color.BLUE);
checkBox.setClickable(false);
}
else
{
view.setClickable(false);
view.setBackgroundColor(Color.WHITE);
checkBox.setClickable(true);
}
`