各行に OnClickListeners を持つ ListView が 1 つあります。
アダプターからのコード (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);
}
問題は、getView メソッドの OnClickListener で multipleChoiceListener (onLongClick) が動作しない、CAB が表示されない、OnClickListener を外すと multipleChoiceListener が正常に動作する、CAB が正常に表示される、ということです。
あなたはなにか考えはありますか?OnLongClick を実装して CAB を呼び出すなど、別の方法を試す必要がありますか? Gmail が行っているので、それが可能であることはわかっています。