J'essaie de désactiver plusieurs événements de clic sur listview, par exemple, après avoir appuyé sur le premier clic, certains médias sont lus à partir du service Web, tandis qu'ils sont lus, les autres éléments doivent être clickable==false
, Après la lecture des médias, d'autres éléments de liste peuvent être cliquable.
Ce que j'essaie d'appeler setClickable(true)
et setClickable(false)
sur ListView
Object.
Dans votre méthode ArrayAdapter overide isEnabled personnalisée, comme suit
@Override
public boolean isEnabled(int position) {
return false;
}
Créez votre propre sous-classe d'ArrayAdapter qui a AreAllItemsEnabled () retourne faux, et définissez isEnabled (int position) pour retourner faux pour un élément donné dans vos ceux que vous voulez désactiver .
Ajoutez ceci au xml
Android:listSelector="@Android:color/transparent"
créer un adaptateur pour cette liste, et remplacer cette méthode
public boolean isEnabled(int position);
puis retournez false
lorsque vous souhaitez désactiver le clic
Gérez l'événement Click à l'aide de drapeaux.
Pendant que votre lecteur multimédia fonctionne, cliquez sur false en utilisant cette méthode.
setClickable(false);
Lorsque votre lecteur multimédia est arrêté ou ne fonctionne pas ou qu'il est complètement défini, définissez ce drapeau sur la valeur par défaut.
setClickable(true);
avant leCréer:
private long mLastClickTimeListViewItem = 0;
Pour éviter plusieurs clics sur les éléments ListView
Après onCreate à l'intérieur de l'écouteur pour listView, dans mon cas, ce qui suit:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (SystemClock.elapsedRealtime() - mLastClickTimeListViewItem < 1000){
return ;
}
mLastClickTimeListViewItem = SystemClock.elapsedRealtime();
//Do your remaining code magic below...
....
....
} // end of onItemClick method
}); // end of setOnItemClickListner
les réponses ci-dessus n'ont pas fonctionné pour moi, j'ai donc utilisé list.setEnabled(false)
Cela a fonctionné pour moi
Ou de manière simple pour vous désinscrire et vous inscrire OnItemClickListener peut être une meilleure idée.