在longclick项目上为listview添加动态复选框

时间:2014-05-17 10:45:01

标签: android listview checkbox

我需要为列表视图中的所有项添加复选框,即使在列表中长按了一个项目也是如此。我应该在Activity类中实现onItemLongClickListener还是应该在Adapter类中实现getView方法?我尝试在Adapter类中进行以下操作:

chkItem = (CheckBox)view.findViewById(R.id.chkLvItem);
    listTextView.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            checkable=true;
            chkItem.setVisibility(checkable ? View.VISIBLE : View.GONE);
            displayAllCheckbox(checkable);
            return true;
        }
    });
 public void displayAllCheckbox(boolean checkable)
{
    this.checkable = checkable;
    notifyDataSetChanged();
}

2 个答案:

答案 0 :(得分:0)

我猜你无法从无处添加复选框。

从我看来最好的方法是:

  1. 为listview costum layout添加一个复选框

  2. 让它消失

  3. 然后随时将其设为可见

答案 1 :(得分:0)

使用以下解决。希望它可以帮助某人:)

final CheckBox chkItem = (CheckBox)view.findViewById(R.id.chkLvItem);

    if(checkable==true)
    {   
        chkItem.setVisibility(View.VISIBLE);
        chkItem.setChecked(checkBoxState[pos]);

    }


    textView.setOnLongClickListener(new View.OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {

            if(!checkable)
            {
                chkItem.setVisibility(View.VISIBLE);
                checkBoxState[pos]=true;
                chkItem.setChecked(checkBoxState[pos]);
                notifyDataSetChanged();
                Log.d(this.getClass().getName(),"longclick");
                checkable=true;
            }
            return true;
        }
    });