gpt4 book ai didi

android - 在简单的 ListView 多选中禁用复选框?

转载 作者:行者123 更新时间:2023-11-30 02:43:39 31 4
gpt4 key购买 nike

有没有办法在简单的 ListView 多项选择上禁用复选框(防止框被点击)?

我只是在我的 xml 布局中定义一个标准的 ListView ,设置为多选,当用户选中一个框时我想禁用/锁定选择(在 onClick 之后)。

我试过玩: theCheckBox.setClickable(false);但不确定如何从我的简单 ListView 中获取复选框?

有什么想法吗?

谢谢。

我的适配器很简单:

adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, this.ingredientArray);
itemList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
itemList.setAdapter(adapter);

最佳答案

您可以在匿名 ArrayAdapter 类中覆盖您的 getView 并在其中应用 View 的禁用。

示例:

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;
};
};

关于android - 在简单的 ListView 多选中禁用复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414334/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com