Я хочу добавить OnLongClickListener
в мой список. Всякий раз, когда пользователь долго нажимает на элемент в списке, некоторые действия должны быть выполнены, но мой код не ловит этого слушателя. Пожалуйста, дайте мне знать, где я иду не так. Подобный код работает setOnItemClickListener
очень хорошо.
Вот код:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View v,
int index, long arg3) {
// TODO Auto-generated method stub
Log.d("in onLongClick");
String str=listView.getItemAtPosition(index).toString();
Log.d("long click : " +str);
return true;
}
});
Ответы:
Вы должны установить setOnItemLongClickListener () в ListView:
XML для каждого элемента в списке (если вы используете собственный XML) также должен быть
android:longClickable="true"
(или вы можете использовать удобный методlv.setLongClickable(true);
). Таким образом, вы можете получить список только с некоторыми элементами, отвечающими на лонгклик.Надеюсь, что это поможет вам.
источник
lv.setLongClickable(true);
также.lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {...
Если ваш элемент строки ListView ссылается на отдельный файл XML, обязательно добавьте его
android:longClickable="true"
в этот файл макета в дополнение к настройкеsetOnItemLongClickListener()
вашего ListView.источник
или попробуйте этот код:
источник
Я думаю, что приведенный выше код будет работать при длинном щелчке по списку, а не по отдельным элементам.
почему бы не использовать
registerForContextMenu(listView)
. а затем получить обратный вызов в OnCreateContextMenu.Для большинства случаев использования это будет работать одинаково.
источник
В xml добавить
В файле Java
попробуйте это setOnItemLongClickListener ()
источник
это должно работать
также не забудьте в своем XML
android:longClickable="true"
или, если у вас есть пользовательское представление, добавить это в свой пользовательский класс представленияyouCustomView.setLongClickable(true);
вот вывод кода выше
источник
Я попробовал большинство из этих ответов, и все они терпели неудачу для TextViews, у которых была включена автосвязь, но также пришлось использовать долгое нажатие в одном и том же месте!
Я сделал пользовательский класс, который работает.
источник
Это работает для меня для cardView и будет работать так же для просмотра списка внутри адаптера calss, внутри
onBindViewHolder()
функцииисточник
Если вы хотите сделать это в адаптере, вы можете просто сделать это:
источник
Определенно делает трюк.
источник