机器人:设置链接与在TextView中(android: Set link with in

2019-06-27 08:30发布

我动态创建一个TextView,并要设置的文字可链接。 文本值是“ 谷歌 ”。 我提到互联网和博客这样的,这显示了同样的方式,但我无法产生预期的效果。

我尝试不同的方法,但我看到的输出是整个文本只显示文本。 我曾与尝试的代码是:

TextView tv1 = new TextView(this);
tv1.setLayoutParams(textOutLayoutParams);
// Make Linkable
tv1.setMovementMethod(LinkMovementMethod.getInstance());
tv1.setText(Html.fromHtml(l.getLeftString()));

/*SpannableString s = new SpannableString(l.getLeftString());
Linkify.addLinks(s, Linkify.WEB_URLS);
tv1.setText(s);                 
tv1.setMovementMethod(LinkMovementMethod.getInstance());
*/
dialogLayout.addView(tv1);

在我的输出我看到“ 谷歌 ”,并没有任何联系。 我也试过清洁工程及建筑再次,但没有成功。 我期待看到的只有“谷歌”与蓝色(默认)和谷歌点击,浏览器开放下划线http://google.com 。

什么是缺乏在我的代码来获取输出? BTW对于REF:我用64位的Win 7,Java和Eclipse中,Android的API 8-2.2

任何帮助,高度赞赏。

Answer 1:

我终于得到它的工作使用下面的代码:

TextView tv1 = new TextView(this);
tv1.setLayoutParams(textOutLayoutParams);
tv1.setText(Html.fromHtml("<a href=\""+ l.getRightString() + "\">" + l.getLeftString() + "</a>"));
tv1.setClickable(true);
tv1.setMovementMethod (LinkMovementMethod.getInstance());
dialogLayout.addView(tv1);

l.getRightString() - 包含如HTTP网址:\ www.google.com l.getLeftString() - 包括了针对URL文本 “转到谷歌”

结果:文本“转到谷歌”在我的对话与蓝色带下划线,而且在单击它在浏览器中打开并shwows相应的页面。 在返回/退出它又来了,从那里离开的状态下,应用程序的浏览器。

希望这可以帮助。



Answer 2:

保存您的HTML字符串

<string name="link">&lt;a href="http://www.google.com">Google&lt;/a></string>

设置TextView的ID对

textViewLinkable

在主要活动中使用如下代码:

((TextView) findViewById(R.id.textViewLinkable)).setMovementMethod(LinkMovementMethod.getInstance());
((TextView) findViewById(R.id.textViewLinkable)).setText(Html.fromHtml(getResources().getString(R.string.link)));


Answer 3:

这里是我的简单的实现试验到Android的N.

String termsText = "By registering, you are agree to our";
String termsLink = " <a href=https://www.yourdomain.com/terms-conditions.html >Terms of Service</a>";
String privacyLink = " and our <a href=https://www.yourdomain.com/privacy-policy.html >Privacy Policy</a>";
String allText = termsText + termsLink + privacyLink;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance());
    ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText, Html.FROM_HTML_MODE_LEGACY));
} 
else {
    ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance());
    ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText));
}


Answer 4:

我也面临着同样的问题,我用以下解决

String str_text = "<a href=http://www.google.com >Google</a>";
TextView link;
link = (TextView) findViewById(R.id.link);
link.setMovementMethod(LinkMovementMethod.getInstance());
link.setText(Html.fromHtml(str_text));

为改变链接的颜色为蓝色使用

link.setLinkTextColor(Color.BLUE);


Answer 5:

txtview.setMovementMethod(LinkMovementMethod.getInstance());

通过这个语句将TextView的,并在string.xml设置字符串

<string name="txtCredits"> <a href="http://www.google.com"></a></string>

其中txtview有@字符串/ txtCredits”你的XML类:现在把这个字符串名“text =机器人”。



文章来源: android: Set link with in TextView