我有TextView
,其点击触发浏览器打开网址。如何将选择器应用于TextView
。我尝试了android:textColor="@drawable/text_selector"
,它适用于所有其他TextViews
。
<TextView
android:id="@+id/txtWebsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:linksClickable="true"
android:textColor="@drawable/text_selector"
android:textSize="@dimen/web_textsize"
android:textStyle="normal" />
我也试过了android:textColorLink="@drawable/text_selector"
,但也没有。
答案 0 :(得分:3)
我按照自己的方式实施,并且工作正常。
textview=(TextView) findViewById(R.id.textview);
textview.setClickable(true);
String mystring=new String("https://www.google.com");
SpannableString content = new SpannableString(mystring);
content.setSpan(new UnderlineSpan(), 0, mystring.length(), 0);
textview.setText(content);
textview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
和XML textView
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="http://www.google.com"
android:textColor="@color/text_selector"
android:textSize="18sp"
android:textStyle="bold" />
和res/color/selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#7fa87f" android:state_pressed="true" />
<!-- pressed -->
<item android:color="#ff33b5" android:state_focused="true" />
<!-- focused -->
<item android:color="#061476" />
<!-- default -->
</selector>
答案 1 :(得分:0)
您可以通过代码以编程方式设置可单击的TextView。
SpannableString ss = new SpannableString("Click here to learn more");
ss.setSpan(clickableSpan, 0, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
在XML中添加以下两行:
android:autoLink="web"
android:linksClickable="true"
希望它会对你有所帮助。