You can use Linkify in a custom list adapter. Linkify allows you to set colors using a selector like so:
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);
(note: the holder.messageText is a simple TextView in a holder object)
then you have a /res/color/color_selector.xml like this:
<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>