我正在写有文字的ListView控件的应用程序。在每一行中都有文字和链接的组合。我添加了一个OnItemLongClickListener到列表中,变成可点击的链接与LongClick TextView的,可点击的链接
my_text.setMovementMethod(LinkMovementMethod.getInstance());
的问题是,如果我能够点击链接,我不能让TextView的注册LongClick。
我已经尝试了不同的方法,使可点击这样的链接作为
android:autoLink="web
但是,这并不使链接点击。
我的问题是:是否有不同的方式,我应该设置LongClickListener,或不同的方式来使链接可点击?
有没有其他人遇到过类似的问题?
我要指出的是,现在的OnItemLongClickListener使得链接注册LongClicks但这会导致一个问题,当一个TextView可是没有一个链接或用户尝试到别处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>
添加一切编程:
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);
制作(adapte的getView())链接点击:
my_tv.setText(Html.fromHtml(formatted_text)));
my_tv.setLinkTextColor(linkColor);
my_tv.setMovementMethod(LinkMovementMethod.getInstance());
这使得可点击的链接,但似乎消耗的所有点击他们得到TextView的面前。我试图添加一个返回false的longClickListener,但似乎没有任何影响。
我的临时解决方法是将itemLongClickListener和onItemClickListener设置为listItem,并仅显示onListItemClick中可点击文本的对话框。这可以工作,但增加了一个额外的点击用户与文本交互
你能告诉我你需要什么longclick吗?我点击链接会在webview中打开它。你是否有要求单击列表中的项目时,会打开另一个活动及其详细信息? – Shubhayu 2012-03-17 02:26:46
我用的是长按则可打开选项对话框,可将他们带到不同的活动,这取决于被点击的listItem用户。 – ByteMe 2012-03-20 02:48:00
你可以添加代码,你现在把OnItemLongClickListener()和你让链接可点击的部分吗?还提供了包含你的列表和包含你的列表项目的XML。 – Shubhayu 2012-03-20 05:56:51