我在每行中都有一个带有OnClickListeners的ListView:
来自适配器的代码(BaseAdpater)@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final Lecture lecture = getItem(position);
View rowView = convertView;
if (rowView == null) {
rowView = mLayoutInflater.inflate(R.layout.notes_lecture_list, null);
ViewHolder viewHolder = new ViewHolder();
viewHolder.id = (TextView) rowView.findViewById(R.id.tv_lecture_id);
viewHolder.name = (TextView) rowView.findViewById(R.id.tv_lecture_name);
viewHolder.row = (LinearLayout) rowView.findViewById(R.id.ll_lecture_notes);
viewHolder.arrow = (ImageView) rowView.findViewById(R.id.iv_notes_menu_arrow);
rowView.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) rowView.getTag();
holder.row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
select(lecture);
}
});
}
我想用CAB实现多行删除:
private void prepareAdapter() {
mAdapter = new MyListAdapter(this);
mMultiChoiceListener = new MyMultiChoiceModeListener(this, mAdapter);
mMyListView.setAdapter(mAdapter);
mMyListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
mMyListView.setMultiChoiceModeListener(mMultiChoiceListener);
}
问题是multiChoiceListener(onLongClick)在getView方法中不能与OnClickListener一起使用,不显示CAB,如果我取消OnClickListener,则multipleChoiceListener正常工作,CAB正常显示。
你有什么想法吗?我应该尝试其他方式,如实现OnLongClick来调用CAB吗?我知道这是可能的,因为Gmail可以做到。
答案 0 :(得分:0)
找到解决方案。
在listview上使用OnItemClickListener可以正常工作。
感谢。