我正在尝试使用以下代码在网络浏览器中打开网址
不起作用
Bundle ex=in.getExtras();
link=ex.getString("link");
public void onClick(View arg0) {
Intent t=new Intent(Intent.ACTION_VIEW);
Uri u=Uri.parse(link);
t.setData(u);
startActivity(t);
}
但是我有一个奇怪的问题。当我使用确切的url而不是字符串“link”时,一切正常,但是当我使用我创建的String链接时,我得到“没有找到要处理的活动”意图“例外。但我确定链接包含正确的URL,与之前使用的相同。
此作品
public void onClick(View arg0) {
Intent t=new Intent(Intent.ACTION_VIEW);
Uri u=Uri.parse("http://google.com");
t.setData(u);
startActivity(t);
}
我确信在第一种情况下,链接包含网址(http://google.com),除了我打印在textview上进行检查!
答案 0 :(得分:1)
嗯,问题是由'link'的空格引起的。我使用了link.trim()并且它正常工作。谢谢你们的帮助。
答案 1 :(得分:0)
这是因为Intent.ACTION_VIEW
的行为会有所不同,具体取决于您使用setData
传递的数据。
因此,如果你传递一个Uri / URL,它将打开浏览器,但是如果你传递一个字符串(字符串实际上包含一个url并不重要),它就不知道如何处理它。
如果您需要从代码创建链接,可以使用Uri.withAppendedPath