繁体   English   中英

在Android textView上链接

[英]Link on a Android textView

我试图在textview上放置一个链接,但是当我单击此链接时,应用程序中断了! 这是我的代码:

final TextView msg = (TextView)view_aux.findViewById(R.id.accordion_msg);
msg.setText(Html.fromHtml(dbStructure.getMsg()));
msg.setTypeface(tF);
msg.setTextColor(Color.DKGRAY);
msg.setMovementMethod(LinkMovementMethod.getInstance());

dbStructure.getMsg()返回String 该字符串可能类似于:

< a href="/reference/android/widget/RelativeLayout.html">RelativeLayout< /a> 

让子视图指定其相对于父视图或彼此的位置(由ID指定)。 因此,您可以按右边框对齐两个元素,也可以在屏幕下方居中,在屏幕左侧居中,使一个元素位于另一个元素之下。

看起来不错,但是当我按该应用程序时它停止了。

编辑
引发ActivityNotFoundException的错误。

您尝试打开的链接已损坏

/reference/android/widget/RelativeLayout.html

没有与上述链接相对应的内容。

像这样用适当的网址替换它

http://developer.android.com/reference/android/widget/RelativeLayout.html

非常感谢大家……问题是(如@Antonio @danidee @TheRedFox和@Arslan所说的)URL的格式...它不是以http开头的。 在大家的允许下,我将回答我自己的问题:

final TextView msg = (TextView)view_aux.findViewById(R.id.accordion_msg);
String msg_text = dbStructure.getMsg();
if(msg_text.contains("href=\"")) {
    String[] msg_aux = msg_text.split("<a href=\"");
    if (!msg_aux[1].toLowerCase().startsWith("http"))
        msg_aux[1] = "href=\"http://" + msg_aux[1];
    else
        msg_aux[1] = "href=\"" + msg_aux[1];
    msg_text = msg_aux[0] + msg_aux[1];
}
msg.setText(Html.fromHtml(msg_text));
msg.setTypeface(tF);
msg.setTextColor(Color.DKGRAY);
msg.setMovementMethod(LinkMovementMethod.getInstance());

谢谢。

编辑代码,这些行:

else
    msg_aux[1] = "href=\"" + msg_aux[1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM