1

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

有人可以告诉我如何连接这两个功能并获得颜色效果吗?

4

3 回答 3

1

您可以在自定义列表适配器中使用 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 对象中的一个简单 TextView)

那么你有一个像这样的 /res/color/color_selector.xml :

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color="@drawable/message_focused" /> <item android:state_pressed="true" android:state_enabled="false" android:color="@drawable/message_pressed" /> <item android:state_enabled="false" android:color="@drawable/message_enabled" /> <item android:state_active="true" android:color="@drawable/message_active" /> <item android:color="@drawable/message_default" /> </selector>

于 2010-06-23T22:50:01.400 回答
0

我在开始时使用了 ImageView 和 Textview,但是您可以使用 WebView 避免此类问题并保持 html 交互性。

读这个

如何在 Android Layout 中使用环绕图像的文本生成浮动图像(右对齐)?

于 2010-06-23T22:56:20.467 回答
0

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

于 2010-06-28T15:26:38.853 回答