我的TextView中有链接:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
...
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all"
android:linksClickable="true"
android:text="@string/app_description" />
</RelativeLayout>
链接是资源的一部分:
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<string name="app_description">Some text with the <a href="http://www.example.com">link</a>.</string>
</resources>
不知何故,链接不起作用。可能是什么原因? 它显示为链接。但是点击不会打开浏览器。
班级代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
答案 0 :(得分:8)
你可以这样使用http链接:
mLink = (TextView) findViewById(R.id.link);
if (mLink != null) {
mLink.setMovementMethod(LinkMovementMethod.getInstance());
}
在XML中:
android:autoLink="all"
答案 1 :(得分:1)
TextView yourTextView =(TextView)findViewById(R.id.yourTextViewId);
yourTextView.setMovementMethod(LinkMovementMethod.getInstance());
Spannable spans = (Spannable) yourTextView.getText();
ClickableSpan clickSpan = new ClickableSpan() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.yourTextViewId :
Intent localIntent = new Intent();
localIntent.setAction("android.intent.action.VIEW");
localIntent.setData(Uri.parse("YOUR LINK"));
startActivity(localIntent);
break;
}
}
};
spans.setSpan(clickSpan, 0, spans.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
答案 2 :(得分:0)
以下代码对我有用。
String html2 = "<br><br>Fire - <b><a href=http://www.google.com>google</a> </b></br></br>";
text.append(Html.fromHtml(html2));
text.setMovementMethod(LinkMovementMethod.getInstance());
答案 3 :(得分:0)
重要,如果您使用的是:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
textView.setText(Html.fromHtml("<a href=https://www.google.com/>Click</a>", Html.FROM_HTML_MODE_LEGACY));
} else {
textView.setText(Html.fromHtml("<a href=https://www.google.com/>Click</a>"));
}
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());
请勿在xml中设置android:autoLink="all"
或android:autoLink="web"
,因为这样做不起作用!