157 votes

comment implémenter un écouteur clic long sur un listview

Je tiens à ajouter sur mon affichage de liste. Chaque fois que l’utilisateur long Appuyez sur l’élément dans la liste des mesures doivent être effectuée, mais mon code n’intercepte pas cet écouteur. S’il vous plaît faites le moi savoir où je me trompe. Le code similaire fonctionne pour très bien.

Voici le code :

329voto

Dinesh Sharma Points 7098

Vous devez définir setOnItemLongClickListener () dans ListView:

 lv.setOnItemLongClickListener(new OnItemLongClickListener() {

            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int pos, long id) {
                // TODO Auto-generated method stub

                Log.v("long clicked","pos: " + pos);

                return true;
            }
        }); 
 

Le XML pour chaque élément de la liste (si vous utilisez un XML personnalisé) doit également contenir android:longClickable="true" (ou vous pouvez utiliser la méthode pratique lv.setLongClickable(true); ). De cette façon, vous pouvez avoir une liste avec seulement quelques éléments répondant à longclick.

J'espère que ceci vous aidera.

27voto

Jonathan Lin Points 2498

Si votre élément de ligne ListView fait référence à un fichier XML distinct, veillez à ajouter android:longClickable="true" à ce fichier de présentation en plus de définir setOnItemLongClickListener() sur votre liste.

15voto

Ardi Points 51

ou essayez ce code:

 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            public boolean onItemLongClick(AdapterView<?> arg0, View v,
                    int index, long arg3) {

    Toast.makeText(list.this,myList.getItemAtPosition(index).toString(), Toast.LENGTH_LONG).show();
                return false;
            }
}); 
 

6voto

nandeesh Points 16095

Je pense que ce code ci-dessus fonctionnera sur LongClicking la listview, pas les éléments individuels.

pourquoi ne pas utiliser registerForContextMenu(listView) . puis obtenez le rappel dans OnCreateContextMenu.

Dans la plupart des cas d'utilisation, cela fonctionnera de la même manière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X