2012-12-22 39 views
1

我尝试使用下面的代码来打开Web浏览器的URL打开网址,不能在浏览器

不起作用

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); 
} 

但我havinng怪异问题。当我使用确切的网址而不是字符串“链接”时,一切正常,但是当我使用我创建的字符串链接时,我得到了“找不到处理意图的活动”异常。但是我确定链接包含正确的网址,与我之前使用的网址相同。

这个作品

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检查!

+0

你可以发布两个例子吗? –

+1

你可以发布你如何声明和初始化参数“链接”?当你打印logcat的“链接”时,它说什么? –

回答

0

好了,问题是由在的空白造成的“link'.I使用link.trim(),它工作正常。谢谢你们的帮助。

0

这是因为Intent.ACTION_VIEW的行为有所不同,具体取决于您通过setData传递的数据。 所以如果你传递一个Uri/URL,它会打开浏览器,但是如果你传递一个字符串(没关系,字符串实际上包含一个url),它不知道该如何处理它。

如果你需要创建一个代码的链接,你可以使用Uri.withAppendedPath

+0

但即使在第一种情况下,我传递给setData一个URI,而不是一个字符串 – tasgr86

+0

你确定链接以“http://”开头吗? – alex

+0

yep.And所以我会让它变得更糟我正在显示包含在链接中的链接到一个textview,它的显示正确,而且当我点击它,它正确地打开它的浏览器。但它不工作的按钮,我使用的代码我发布相同的总是'链接'! – tasgr86

相关问题