Quero adicionar OnLongClickListener
na minha exibição de lista. Sempre que o usuário pressiona o item na lista, alguma ação deve ser executada, mas meu código não captura esse ouvinte. Por favor, deixe-me saber onde estou errado. O código semelhante funciona setOnItemClickListener
muito bem.
Aqui está o código:
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;
}
});
Respostas:
Você precisa definir setOnItemLongClickListener () no ListView:
O XML para cada item da lista (você deve usar um XML personalizado) também deve ter
android:longClickable="true"
(ou você pode usar o método de conveniêncialv.setLongClickable(true);
). Dessa forma, você pode ter uma lista com apenas alguns itens que respondem ao clique longo.Espero que isso ajude você.
fonte
lv.setLongClickable(true);
também.lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {...
Se o item de linha do ListView se referir a um arquivo XML separado, adicione-o
android:longClickable="true"
ao arquivo de layout, além de definirsetOnItemLongClickListener()
o ListView.fonte
ou tente este código:
fonte
Eu acho que esse código acima funcionará em LongClicking na lista, não nos itens individuais.
por que não usar
registerForContextMenu(listView)
. e, em seguida, obtenha o retorno de chamada no OnCreateContextMenu.Para a maioria dos casos de uso, isso funcionará da mesma forma.
fonte
No xml add
No arquivo java
tente isso setOnItemLongClickListener ()
fonte
isso deve funcionar
também não se esqueça de usar seu xml
android:longClickable="true"
ou, se você tiver uma visualização personalizada, adicione-a à sua classe de visualização personalizadayouCustomView.setLongClickable(true);
aqui está a saída do código acima
fonte
Tentei a maioria dessas respostas e todas estavam com falha nos TextViews que tinham o link automático ativado, mas também tiveram que usar pressão longa no mesmo lugar!
Eu fiz uma classe personalizada que funciona.
fonte
Isso funcionou para mim no cardView e funcionará da mesma maneira para o listview dentro do adaptador calss, dentro da
onBindViewHolder()
funçãofonte
Se você quiser fazer isso no adaptador, basta fazer o seguinte:
fonte
Definitivamente faz o truque.
fonte