1

我正在尝试使用以下代码在网络浏览器中打开一个网址,

不工作

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 而不是字符串“链接”时,一切正常,但是当我使用我创建的字符串链接时,我得到“没有找到处理意图的活动”异常.但我确定该链接包含正确的网址,与我之前使用的相同。

这行得通

 public void onClick(View arg0) {
    Intent t=new Intent(Intent.ACTION_VIEW);
    Uri u=Uri.parse("http://google.com");
    t.setData(u);
    startActivity(t);   
}

我确定在第一种情况下链接包含 url (http://google.com),除了我打印在 textview 上检查!

4

2 回答 2

1

好吧,问题是由“链接”处的空格引起的。我使用了 link.trim() 并且它工作正常。谢谢你们的帮助。

于 2013-01-15T15:03:52.943 回答
0

那是因为Intent.ACTION_VIEW根据您传递的数据,行为会有所不同setData。因此,如果您传递一个 Uri/URL 它将打开浏览器,但如果您传递一个字符串(字符串实际上包含一个 url 并不重要)它不知道如何处理它。

如果您需要从代码创建链接,您可以使用Uri.withAppendedPath

于 2012-12-22T16:12:17.707 回答