5

Twitter をアプリに統合する作業を行っていますが、すべてが正常に機能する一方で、リンクが含まれているsetOnItemClickListener()場合にトリガーされないことに困惑しています。リンク (URL) が含まれていないListView item場合は問題なく動作します。item

URL 自体をクリックすると、ブラウザで Web ページが開きます。

投稿の最後に参考として追加されたスクリーンショットをご覧ください。

ListViewを採用したカスタムですBaseAdapter。どのコードを挿入すればよいかわかりませんが、ここにいる人々が必要とする可能性のあるコード ブロックを指摘されたら、すぐに追加します。

アイテム内のリンク (URL) を無視する必要がある背景にある考え方は、ユーザーがリンクをクリックしたときにツイートの詳細を表示する機能を提供することです。Twitter Android アプリの機能に似た機能です。

setOnItemClickListener()では、アイテム内のリンクを無視するにはどうすればよいでしょうか?

更新しました:

わかった。SOが質問に関連しているかどうかはわかりませんが、SOのいくつかのソリューションを組み合わせてTweetLanesオープンソースプロジェクトに導いた結果、いくつかのことをうまく機能させることができました。しかし、残念ながら、それは私の主な質問には対応していません。

setOnItemClickListener()アイテムのリンクを無視して、それをクリックして別のアクティビティの詳細を表示できるようにするにはどうすればよいsetOnItemClickListener()ですか? 私が試みるたびに、部分的な解決策が得られ続けます。しかし、時々、をクリックするlinkと、setOnItemClickListener()トリガーもトリガーされます。

これは、現時点での流れがどのように見えるかです。

ここに画像の説明を入力

上の 2 つのスクリーンショットでは、正常に動作しています。結局のところ、リンクをクリックしないでください。

ただし、下の 2つでは、 @ibnliveリンクをクリックすると、ユーザー ( @ibnlive ) のプロファイルが表示されます。この部分は TweetLanes ソースから派生しています。問題は、クリック リスナーもトリガーされることです。これは私が試している解決策の 1 つです。この場合、 をコメントアウトし、setOnItemClickListener()で を使用しOnClickListener()ていTextViewます。これは、これまでのところ部分的に成功している 1 つの方法です。

4

5 に答える 5

2

listItem のクリック イベントをサポートし、レコード内のリンクをサポートするにandroid:descendantFocusability="blocksDescendants"は、リスト レコードの xml の最上位レイアウトで設定する必要があります。

于 2013-04-17T10:00:11.670 に答える
1

これは、link がクリック可能で、listItem もクリック可能であるためです。ここでは、link がフォーカスを取得し、listItem をクリックできません。

設定するだけです:

すべての項目を設定android:focusable="false"

およびandroid:focusableInTouchMode="false"listItemの。

于 2013-04-17T09:50:18.620 に答える
1

次のコードを試しましたか (このリンクに基づく):

textView.setMovementMethod(null);

?


編集:ここに実用的な解決策があります:

textView.setOnTouchListener(new OnTouchListener() 
    {
    @Override
    public boolean onTouch(final View v, final MotionEvent event) 
        {
        if (event.getAction() == MotionEvent.ACTION_UP)
          {
          // <=handle clicking here
          }
        return true;
        }
   });
于 2013-04-22T05:40:48.057 に答える