Подтвердить что ты не робот

SetOnItemClickListener VS setOnItemSelectedListener в ListView.

Я хочу установить onClickListener в элементах ListView, но я вижу два метода setOnItemClickListener и setOnItemSelectedListener. Я не нашел оправданного объяснения этих двух в официальных документах. Какой из них использовать для какой цели?

Чтобы выбрать элемент, пользователь должен будет щелкнуть элемент, а затем использовать различные методы?

4b9b3361

Ответ 1

Это похоже на

элемент щелкнут (одиночный выбор), а элемент выбран (используется при множественном выборе)

Ответ 2

В их описании представлена ​​разница между этими методами:

has been selected vs has been clicked

На самом деле разница в точности совпадает с разницей между выбранными и нажатыми в терминах Android. Выбирайте его больше как выделение, пожалуйста, обратитесь к более подробному объяснению выбранного состояния здесь (под андроид: state_selected). Щелчок совпадает с нажатым в терминах android и описан в той же ссылке, но в android: state_pressed.

Ответ 3

Не обязательно верно. Вы можете иметь ListView, который будет доступен для навигации с клавиатуры или акселерометра. Кроме того, щелчок по элементу не обязательно означает его выбор - возможно, после выбора чего-то, когда вы хотите заблокировать выделение, пока не произойдет какое-то другое событие.

Для всех целей, если вы хотите отреагировать на выбор элемента, используйте setOnItemSelectedListener, но если вы хотите реагировать на нажатие на них пользователя, перейдите к setOnItemClickListener.

Ответ 4

Я думаю, что OnItemSelectedListener вызывается, когда элемент в списке выбирается с помощью клавиш навигации на клавиатуре или с помощью тачпада.

Ответ 5

Я не уверен, но это мое мнение. Может быть, неправильно. setOnItemClickListener: зарегистрировать обратный вызов для вызова, когда элемент в этом AdapterView был нажат. Он всегда возвращает true.

setOnItemSelectedListener: зарегистрировать обратный вызов, который будет вызываться, когда элемент в этом AdapterView был нажат. true, а также false. Если не выбран какой-либо элемент, тогда он покажет, что ничего не выбрано. Это просто сила для пользователя, который выбирает параметр. Выберите элемент и перейдите к нему только как раз. Но когда пользователь забыл выбрать элемент, то если запомнит и пользователь, что он не выбрал никакой опции.