Слушатель 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;
    }
Другие вопросы по тегам