Pew*_*abs 50 android hyperlink textview
我知道如果你在textview中放一个链接它会起作用,但如果我想显示例如:
谷歌stackoverflow
而不是整个链接(只是标签)我如何使这些链接可点击?
And*_*rei 60
您可以有两个单独的TextView,如果需要,您可以在布局中相应地对齐它们:
Text1.setText(
Html.fromHtml(
"<a href=\"http://www.google.com\">google</a> "));
Text1.setMovementMethod(LinkMovementMethod.getInstance());
Text2.setText(
Html.fromHtml(
"<a href=\"http://www.stackoverflow.com\">stackoverflow</a> "));
Text2.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
然后,如果你想剥离"链接下划线".创建一个类:
public class URLSpanNoUnderline extends URLSpan {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在主Activity类中添加此方法,其中包含TextView
private void stripUnderlines(TextView textView) {
Spannable s = new SpannableString(textView.getText());
URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
for (URLSpan span: spans) {
int start = s.getSpanStart(span);
int end = s.getSpanEnd(span);
s.removeSpan(span);
span = new URLSpanNoUnderline(span.getURL());
s.setSpan(span, start, end, 0);
}
textView.setText(s);
}
Run Code Online (Sandbox Code Playgroud)
然后在初始化TextViews之后(在你的onCreate中)调用它:
stripUnderlines(Text1);
stripUnderlines(Text2);
Run Code Online (Sandbox Code Playgroud)
小智 52
TextView t2 = (TextView) findViewById(R.id.textviewidname);
t2.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
和
<string name="google_stackoverflow"><a href="https://stackoverflow.com/questions/9852184/android-textview-hyperlink?rq=1">google stack overflow</a></string>
Run Code Online (Sandbox Code Playgroud)
链接是" Android:textview超链接 "
标签是"google stack overflow"
定义java中的第一个代码块和strings.xml文件中的第二个代码块.另外,请务必在java中的页面布局中引用textView的id.
Hul*_*ulk 14
这很简单的方法---
在你的活动中 -
TextView tv = (TextView) findViewById(R.id.site);
tv.setText(Html.fromHtml("<a href=http://www.stackoverflow.com> STACK OVERFLOW "));
tv.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
然后你将得到标签,而不是整个链接..
希望它能帮到你......
这应该工作.
TextView t2 = (TextView) findViewById(R.id.text2);
t2.setMovementMethod(LinkMovementMethod.getInstance());
and
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/txtCredits"
android:id="@+id/text2"
android:layout_centerInParent="true"
android:layout_marginTop="20dp"></TextView>
Run Code Online (Sandbox Code Playgroud)