Ответ 1
Это похоже на
элемент щелкнут (одиночный выбор), а элемент выбран (используется при множественном выборе)
Я хочу установить onClickListener в элементах ListView, но я вижу два метода setOnItemClickListener
и setOnItemSelectedListener
. Я не нашел оправданного объяснения этих двух в официальных документах. Какой из них использовать для какой цели?
Чтобы выбрать элемент, пользователь должен будет щелкнуть элемент, а затем использовать различные методы?
Это похоже на
элемент щелкнут (одиночный выбор), а элемент выбран (используется при множественном выборе)
В их описании представлена разница между этими методами:
has been selected vs has been clicked
На самом деле разница в точности совпадает с разницей между выбранными и нажатыми в терминах Android. Выбирайте его больше как выделение, пожалуйста, обратитесь к более подробному объяснению выбранного состояния здесь (под андроид: state_selected). Щелчок совпадает с нажатым в терминах android и описан в той же ссылке, но в android: state_pressed.
Не обязательно верно. Вы можете иметь ListView, который будет доступен для навигации с клавиатуры или акселерометра. Кроме того, щелчок по элементу не обязательно означает его выбор - возможно, после выбора чего-то, когда вы хотите заблокировать выделение, пока не произойдет какое-то другое событие.
Для всех целей, если вы хотите отреагировать на выбор элемента, используйте setOnItemSelectedListener
, но если вы хотите реагировать на нажатие на них пользователя, перейдите к setOnItemClickListener
.
Я думаю, что OnItemSelectedListener
вызывается, когда элемент в списке выбирается с помощью клавиш навигации на клавиатуре или с помощью тачпада.
Я не уверен, но это мое мнение. Может быть, неправильно. setOnItemClickListener: зарегистрировать обратный вызов для вызова, когда элемент в этом AdapterView был нажат. Он всегда возвращает true.
setOnItemSelectedListener: зарегистрировать обратный вызов, который будет вызываться, когда элемент в этом AdapterView был нажат. true, а также false. Если не выбран какой-либо элемент, тогда он покажет, что ничего не выбрано. Это просто сила для пользователя, который выбирает параметр. Выберите элемент и перейдите к нему только как раз. Но когда пользователь забыл выбрать элемент, то если запомнит и пользователь, что он не выбрал никакой опции.