我正在尝试在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。
答案 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];