在Android textView上链接

时间:2015-02-20 09:34:32

标签: 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。

2 个答案:

答案 0 :(得分:1)

您尝试打开的链接已损坏

/reference/android/widget/RelativeLayout.html

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

将其替换为正确的网址

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

答案 1 :(得分:0)

非常感谢每一个人...问题是(如@Antonio @danidee @TheRedFox和@Arslan所说)网址的格式......它不是以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];