Android代码勾选列表视图行onclick

时间:2015-04-06 06:13:49

标签: android

使用此代码checkBox正确点击工作。

点击项目时如何查看CheckBox的{​​{1}}?

我有ListView ListViewCheckBox。怎么做?

TextView

2 个答案:

答案 0 :(得分:0)

在你的构造函数中创建一个与你的mAllitems相同大小的arraylist,如:

ArrayList<Boolean> isCheckedItem = new ArrayList<>();
        for(int i = 0 ;i < mAllitems.size(); i++){
            isCheckedItem.set(i, false);
        }

之后在getView()methid中你检查数据!= null把这段代码:

if(isCheckedItem.get(position)){
            holder.selected.setChecked(true);
        }else{
            holder.selected.setChecked(false);
        }

删除holder.selected.setOnClickListener()方法并添加holder.selected.setOnCheckedChangeListener()方法:

holder.selected.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                int position = (int)buttonView.getTag();
                if(isChecked){
                    isCheckedItem = true;
                }else{
                    isCheckedItem = false;
                }
            }
        });

答案 1 :(得分:0)

将onItemClickListener设置为listview并在其中访问CheckBox,然后您可以选中/取消选中它。像这样:

listview.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override public void onItemClick(AdapterView<?> parent, final View view, int position, long   id) {

View v;

int count = parent.getChildCount();

parent.requestChildFocus(v, view);  

        for (int i=0; i<count; i++)
        {
            v =parent.getChildAt(i);         
                if(v instanceof CheckBox){
                final CheckBox cb = (CheckBox) v;
                cb.setChecked(true);
                }   
        }
    }
});

希望这可以帮助你。