我需要为列表视图中的所有项添加复选框,即使在列表中长按了一个项目也是如此。我应该在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();
}
答案 0 :(得分:0)
我猜你无法从无处添加复选框。
从我看来最好的方法是:
为listview costum layout添加一个复选框
让它消失
然后随时将其设为可见
答案 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;
}
});