当用户单击文本视图时,我想删除突出显示的颜色。所以我可以更改所有颜色并使其成功,但是当我单击 textview 时它没有打开链接。如果我删除自动链接它的工作......
所以我的问题是如何在不使用自动链接的情况下删除突出显示?
XML 文件:
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Customer Service"
android:textAlignment="center"
android:textSize="15sp"
android:clickable="true"
android:linksClickable="true"
android:autoLink="web"
android:background="@drawable/about_us_selector"
android:textColor="@color/about_us_color" />
背景可绘制:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/light_gray"
android:state_pressed="true"/>
</selector>
颜色:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
爪哇:
String webTv1 = "<a href='http://www.google.com'> Customer Service </a>";
tv1 = (TextView) findViewById(R.id.tv1);
tv1.setClickable(true);
tv1.setText(Html.fromHtml(webTv1));
//set user name in blue color and remove underline from the textview
Spannable spannedTv1 = Spannable.Factory.getInstance().newSpannable(
Html.fromHtml(webTv1));
Spannable processedText = removeUnderlines(spannedTv1);
if (tv1 != null) {
tv1.setText(processedText);
tv1.setMovementMethod(LinkMovementMethod.getInstance());
}
}
public static Spannable removeUnderlines(Spannable p_Text) {
URLSpan[] spans = p_Text.getSpans(0, p_Text.length(), URLSpan.class);
for (URLSpan span : spans) {
int start = p_Text.getSpanStart(span);
int end = p_Text.getSpanEnd(span);
p_Text.removeSpan(span);
span = new URLSpanNoUnderline(span.getURL());
p_Text.setSpan(span, start, end, 0);
}
return p_Text;
}