2012-07-31 3 views
6

Umwelt: Ich habe ein Android ListView mit Zeilen, die von Textviews bestehen einige HTML mit abgreifbar Links enthalten (URLSpans). In der ListView habe ich einen OnItemLongClickListener gesetzt, um auf Long-Click-Ereignisse in einzelnen Zeilen zu warten.Listview onItemLongClickListener nicht Link nicht verhindern, tippt

Ziel: Wenn ich ein langes Klick-Ereignis erhalten, mag ich für das gleiche Berührungsereignis auf die Links Hähne deaktivieren, aber ich sehe nicht, wie dies zu tun. Der lange Klick wird korrekt ausgelöst, aber sobald ich den Finger hebe, wird auch der Link-Tap ausgelöst.

Was ich schon versucht habe: Ich habe versucht, Rückkehr wahr (und falsch) auf der onItemLongClick Methode - es keinen Unterschied oder so zu machen scheint. Ich habe versucht, die MotionEvent.ACTION_UP nach einem langen Klick abzufangen, so dass ich vorübergehend den Link tippen kann, aber ACTION_UP feuert nicht - zumindest nicht auf die ListView.

Antwort

1

Ich habe einige weitere Suche und fand diese Antwort auf eine ähnliche Frage: Android TextView Linkify intercepts with parent View gestures

ich die Konzepte von dieser Antwort verwendet, um mein Problem zu lösen. Ich erweiterte die TextView Klasse und überging onTouchEvent und schaue, um zu sehen, ob ich auf einen Link auf Touch-Down-Ereignisse tippen. Wenn ich bin, speichere ich diesen Link und "klicke" ihn programmatisch auf meine ListView.onItemClick, wenn ich nicht zuerst auf LongClick stoße. Jawohl.

Wenn jemand eine elegantere Möglichkeit hat, das Problem zu lösen, posten Sie es und ich werde Ihre Antwort akzeptieren, wenn es funktioniert. Wenn nicht, werde ich meine eigene Antwort in ein paar Tagen akzeptieren.