6

環境:ListViewタップ可能なリンク()を含むHTMLを含むTextViewで構成される行を 持つAndroidがありますURLSpans。ListViewで、OnItemLongClickListener個々の行のロングクリックイベントをリッスンするように設定しました。

目標: ロングクリックイベントを受け取ったときに、同じタッチイベントのリンクのタップを無効にしたいのですが、その方法がわかりません。ロングクリックは正しく起動しますが、指を離すとすぐにリンクタップも起動します。

私がすでに試したこと:メソッド でtrue(およびfalse)を返そうとしましonItemLongClickたが、どちらの方法でも違いはないようです。MotionEvent.ACTION_UPリンクタップを一時的に消費できるように、長いクリックの後にインターセプトしようとしましたが、起動ACTION_UPしません-少なくともではありませんListView

4

1 に答える 1

1

さらに検索を行ったところ、同様の質問に対するこの回答が見つかりました

この回答の概念を使用して問題を解決しました。TextViewクラスを拡張してオーバーライドonTouchEventし、タッチダウン イベントのリンクをタップしているかどうかを確認しました。私がそうであれば、そのリンクを保存し、最初ListView.onItemClickに遭遇しなかった場合はプログラムで「クリック」します。LongClickうん。

他の誰かが問題を解決するためのよりエレガントな方法を持っている場合は、投稿してください。うまくいけば、あなたの答えを受け入れます。そうでない場合は、数日以内に自分の回答を受け入れます。

于 2012-07-31T19:57:01.727 に答える