Слушатель ListView Multichoice не работает должным образом, когда мы включаем из ImageView
после отпускания длинного щелчка элемент автоматически отменяется.
holder.attach_img.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (lvChatList.isItemChecked(position))
lvChatList.setItemChecked(position, false);
else
lvChatList.setItemChecked(position, true);
notifyDataSetChanged();
return false;
}
});
1 ответ
Как вы, возможно, знаете, иерархия View в Android представлена деревом. Когда вы возвращаете true из onLongClick() - это означает, что представление, которое в настоящий момент получило событие, является истинным получателем события, и событие не должно распространяться на другие представления в дереве; когда вы возвращаете false - вы позволяете событию передаваться другим представлениям, которые могут его использовать. Так что для вашего текущего сценария просто сделайте onLongClick(View view) возвращает return true
вместо возврата false
и проверьте это https://developer.android.com/reference/android/view/View.OnLongClickListener.html
@Override
public boolean onLongClick(View view) {
if (lvChatList.isItemChecked(position))
lvChatList.setItemChecked(position, false);
else
lvChatList.setItemChecked(position, true);
notifyDataSetChanged();
return true;
}