Я искал и не нашел решения (возможно, не использовал правильные ключевые слова).
Итак, у меня есть собственный ListView, его элемент можно перетаскивать, когда по нему долго щелкают. В его элементе есть ImageView и LinearLayout, содержащие два TextView. Действия выполняются при нажатии LinearLayout или ImageView.
Для этого я использовал setOnItemLongClickListener в моем DragListView, который расширяет ListView, чтобы инициировать действие перетаскивания, и onInterceptTouchEvent, чтобы управлять действием перетаскивания.
Затем я создал собственный адаптер, расширяющий BaseAdapter, и переопределил его getView () для реализации дочерних элементов в строке. LinearLayout и ImageView были установлены на OnClickListener.
Проблема в том, что LinearLayout и ImageView могут выполнять свои функции, но onItemLongClick не вызывается.
Слушатель внутри getView ();
holder.delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Do something
}
Для длительного нажатия на элемент (инициатор перетаскивания)
setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
//Do something
}
Большое спасибо!