Android:ListView中的HTML链接-突出显示问题

Android:ListView中的HTML链接-突出显示问题,android,listview,hyperlink,android-listview,listviewitem,Android,Listview,Hyperlink,Android Listview,Listviewitem,我编写了一个应用程序,它使用ListActivity。列表中的每一项都由ImageView和TextView组成。长时间单击列表条目会触发一些菜单和颜色效果,因为onCreateContextMenu已被覆盖。有时TextView包含我希望交互的HTML链接。我阅读并激活了链接,因此浏览器/youtube播放器启动。一切都会很好,但长时间点击的颜色效果消失了(上下文菜单仍然出现) 有人能告诉我如何连接这两个功能并恢复颜色效果吗?您可以在自定义列表适配器中使用Linkify。Linkify允许您使

我编写了一个应用程序,它使用
ListActivity
。列表中的每一项都由
ImageView
TextView
组成。长时间单击列表条目会触发一些菜单和颜色效果,因为
onCreateContextMenu
已被覆盖。有时
TextView
包含我希望交互的HTML链接。我阅读并激活了链接,因此浏览器/youtube播放器启动。一切都会很好,但长时间点击的颜色效果消失了(上下文菜单仍然出现)


有人能告诉我如何连接这两个功能并恢复颜色效果吗?

您可以在自定义列表适配器中使用Linkify。Linkify允许您使用如下选择器设置颜色:

                Linkify.addLinks(
                        holder.messageText,
                        messageDetailsMatcher,
                        "content://com.myApp/message/view?messageId=",
                        null, new myLinkTransformFilter(msgId));


                ColorStateList colors = null;
                try {
                    XmlResourceParser xpp = getResources().getXml(
                            R.color.link_color_selector);
                    colors = ColorStateList.createFromXml(getResources(),
                            xpp);
                } catch (Exception e) {
                    Log.e("someError", e);
                }
                holder.messageText.setLinkTextColor(colors);
(注意:holder.messageText是holder对象中的一个简单文本视图)

然后有一个/res/color/color\u selector.xml,如下所示:


您可以在自定义列表适配器中使用Linkify。Linkify允许您使用如下选择器设置颜色:

                Linkify.addLinks(
                        holder.messageText,
                        messageDetailsMatcher,
                        "content://com.myApp/message/view?messageId=",
                        null, new myLinkTransformFilter(msgId));


                ColorStateList colors = null;
                try {
                    XmlResourceParser xpp = getResources().getXml(
                            R.color.link_color_selector);
                    colors = ColorStateList.createFromXml(getResources(),
                            xpp);
                } catch (Exception e) {
                    Log.e("someError", e);
                }
                holder.messageText.setLinkTextColor(colors);
(注意:holder.messageText是holder对象中的一个简单文本视图)

然后有一个/res/color/color\u selector.xml,如下所示:


一开始我使用了ImageView和Textview,但使用WebView可以避免此类问题,并保持html的交互性

读这个


一开始我使用了ImageView和Textview,但使用WebView可以避免此类问题,并保持html的交互性

读这个


我已经设法解决了这个问题。也许不是直接以我想要的方式,但对我来说已经足够了。我没有将侦听器添加到
TextView
中,而是将其添加到整行中。突出显示正如我预期的那样工作。这种行为对我的应用程序来说是可以接受的,但这是一种变通方法,因此我仍然想知道是否可以做得更好。

我已经设法解决了这个问题。也许不是直接以我想要的方式,但对我来说已经足够了。我没有将侦听器添加到
TextView
中,而是将其添加到整行中。突出显示正如我预期的那样工作。我的应用程序可以接受这种行为,但这是一种解决方法,因此我仍然想知道是否可以做得更好。

我不这么认为,因为您提出的问题是由设置为true的row clickable属性引起的。在添加HTML链接处理之前,一切都正常工作。我不这么认为,因为您提出的问题是由设置为true的row clickable属性引起的。在添加HTML链接处理之前,一切正常。谢谢你的回答。我一直试图在自定义列表适配器中添加Linkify。我不太确定它是否解决了我的问题。应用于单个TextView的颜色状态如何返回整行颜色效果的更改(包含TextView的LinearLayout)。谢谢您的回答。我一直试图在自定义列表适配器中添加Linkify。我不太确定它是否解决了我的问题。应用于单个TextView的颜色状态如何返回整行(包含TextView的LinearLayout)的颜色效果变化。