我从我的服务器中获取包含HTML的一些数据,以便在我的应用中使用,而html包含一些像<a href="/go/here">Go here</a>
这样的链接。
我将html应用于TextView,如
text.setText(Html.fromHtml(htmlString));
text.setMovementMethod(LinkMovementMethod.getInstance());
该链接有效,但导致我的应用程序崩溃
No Activity found to handle Intent { act=android.intent.action.VIEW dat=/go/here...`
我猜这次崩溃是因为它是一个相对链接并且没有域名。是否有任何方法,可能是Regex,来搜索所有<a/>
标签和在它之前添加域名?
答案 0 :(得分:1)
int index = htmlString.indexOf("<a>");
String part1 = htmlString.subString(0,index+2);
String part2 = htmlString.subString(index+3);
String newHtmlString = part1+"http://"+part2;
答案 1 :(得分:1)
我很想走最简单的方法:
final String faultyHtml = "Link: <a href=\"/images/nav_logo193.png\">click here</a> etc etc";
final String domain = "http://www.google.fr";
final String fixedHtml = faultyHtml.replace("href=\"/", "href=\"" + domain + "/");
text.setText(Html.fromHtml(fixedHtml));
text.setMovementMethod(LinkMovementMethod.getInstance());
(所有出现的事件都会添加到同一个域中)
答案 2 :(得分:0)
您可以尝试使用此代码。
TextView tv = (TextView) findViewById(R.id.textView1);
String text = "This is just a test. Click this link here <a href=\"http://www.google.com\">Google</a> to visit google.";
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.setText(Html.fromHtml(text));