是否有办法在简单的列表视图多项选择中禁用复选框(防止该框被点击)?
我只是在我的xml布局中定义标准列表视图,设置为多选项,当用户选中一个框时,我想禁用/锁定选择(在onClick之后)。
我试过玩:theCheckBox.setClickable(false); 但不知道如何从我的简单列表视图中获取CheckBox?
任何想法?
感谢。
我的适配器很简单:
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, this.ingredientArray);
itemList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
itemList.setAdapter(adapter);
答案 0 :(得分:1)
您可以在匿名getView
课程中覆盖ArrayAdapter
,并在其中应用视图停用。
<强>样品:强>
ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, this.ingredientArray){
public View getView(int position, View convertView, ViewGroup parent) {
final CheckedTextView ctv = (CheckedTextView)convertView.findViewById(android.R.id.text1);
ctv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(ctv.isChecked())
ctv.setClickable(false);
}
});
};
};
itemList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
itemList.setAdapter(adapter);
编辑:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, this.ingredientArray){
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null)
{
View v = getLayoutInflater().inflate(android.R.layout.simple_list_item_multiple_choice, null);
final CheckedTextView ctv = (CheckedTextView)v.findViewById(android.R.id.text1);
ctv.setText(ingredientArray[position]);
ctv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(!ctv.isChecked())
{
ctv.setChecked(true);
}
}
});
return v;
}
return convertView;
};
};