2012-03-17 21 views
0

私はテキストのListViewを持つアプリケーションを書いています。各行には、テキストとリンクの組み合わせがあります。私は、リストにOnItemLongClickListenerを追加し、問題は、私がリンクをクリックすることができていた場合、私はLongClickを登録するのTextViewを得ることができない、あるLongClick textView、クリック可能なリンク

my_text.setMovementMethod(LinkMovementMethod.getInstance()); 

でクリック可能なリンクを作りました。

私は

android:autoLink="web 

などのクリック可能なリンクを作るためにさまざまな方法を試してみました。しかし、これはリンクがクリック可能になりません。

私の質問は:私は、リンクをクリック可能にするには、別の方法、または別の方法は、LongClickListenerを設定する必要がありますか?

誰かに同様の問題が発生しましたか?

私は今OnItemLongClickListenerはリンクがLongClicksを登録しますが、TextViewのdoesntのは、リンクを持っているか、ユーザーが

(リンク以外)ビューのどこかlongClickしようとすると、これは問題を引き起こすことに注意してくださいコード: 私はプログラム的にリストビューを含むrelativeLayoutを膨らませると、ビューフリッパーに追加:

RelativeLayout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <ListView 
     android:id="@+id/my_list" 
     style="@style/listViewSimple" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="#f9f9f9" 
     android:cacheColorHint="#00000000" 
     android:divider="#ccc" 
     android:dividerHeight="1px" 
     android:fadingEdge="none" 
     android:fadingEdgeLength="30dp" 
     android:footerDividersEnabled="false" 
     android:headerDividersEnabled="false" 
     android:persistentDrawingCache="none" > 
    </ListView> 

</RelativeLayout> 

はプログラム的にすべてのものを追加:

(adapteのgetViewメソッド()で)クリック可能なリンクを作る
  RelativeLayout list = (RelativeLayout) LayoutInflater.from(MyActivity.this).inflate(R.layout.my_list_layout, null); 
      vf.addView(list); 
      ListView lv = (ListView) list.findViewById(R.id.my_list); 
      lv.setOnItemLongClickListener(listLongListener); 

 my_tv.setText(Html.fromHtml(formatted_text))); 
     my_tv.setLinkTextColor(linkColor); 
     my_tv.setMovementMethod(LinkMovementMethod.getInstance()); 

これは、リンクがクリック可能になりますが、彼らはのTextViewに到達する前にすべてのクリックを消費するようです。私はfalseを返すlongClickListenerを追加しようとしましたが、それは何の影響もないようです。

私の一時的な修正は、itemLongClickListenerとonItemClickListenerをlistItemに設定し、onListItemClickにクリック可能なテキストのダイアログを表示することです。これは動作しますが、ユーザーがテキストを操作するための余分なクリックが追加されます

+0

あなたがのためにlongclickが必要なものを教えてもらえますか?リンクをクリックすると、Webviewでそのリンクが開きます。リスト内の項目をクリックすると、その詳細とともに別のアクティビティが開かれるという要件がありますか? – Shubhayu

+0

私は、長いクリックを使用して、どのlistItemがクリックされたかに応じて、さまざまなアクティビティに移動するオプションのダイアログを開きます。 – ByteMe

+0

現在、OnItemLongClickListener()とリンクをクリック可能にする部分を配置しているコードを追加できますか?あなたのリストとureを含んでいるxmlも提供してくださいリスト項目 – Shubhayu

答えて

0

私の一時的な修正は、onItemLongClickListenerとonItemClickListenerをlistItemに設定して、onItemClickにクリック可能なテキストのダイアログを表示することです。これは機能しますが、ユーザーがテキストを操作するための余分なクリックを追加します。

より良い答えは、私が選択した答えを変更します掲載されている場合は

2

カスタムアダプタを作成し、そのアダプタを使用するようにListViewを設定してから、getViewでTextViewにView.OnClickListenerを設定しますあなたのリンクを持っているTextView上のView.OnLongClickListener。競合しないように質問で参照した既存のリスナーを削除します。

+0

ちょっとlouie!アドバイスをいただきありがとうございますが、私は明確ではないと思います。 longClickを登録できるようにするにはビュー全体が必要です。ビューには画像と複数のテキストビューが含まれています。リンクをクリックできるようにしたいのですが、Longclickではユーザーのオプションリストを持つダイアログを表示します。ユーザーがイメージ、テキスト、または空白を長押ししたかどうかに関わらず、ダイアログが表示されます。私は、リスト項目を含むXMLで定義された '行'を持っています。 – ByteMe

関連する問題