我尝试调用函数来打开带有给定网址的浏览器,但收到此错误消息。
我查看了这两个问题并理解我可能有上下文问题,但仍然无法理解如何解决它。
Cannot resolve method startActivity()
Cannot find symbol method startActivity(android.content.Intent)
我的代码:
public void openWeb(String url) {
String fullUrl = "http://bit.do/"+url;
Uri webpage = Uri.parse(fullUrl);
Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
答案 0 :(得分:3)
这意味着此方法位于无法访问上下文的类中。因此,您可以从使用此方法的活动传递上下文,也可以将此方法放在该活动的类中。
答案 1 :(得分:1)
你应该从构造函数中得到一个上下文:
public class YourClass{
private Context context;
public YourClass(Context context) {
this.context = context;
}
...
public void openWeb(String url) {
String fullUrl = "http://bit.do/"+url;
Uri webpage = Uri.parse(fullUrl);
Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
if (intent.resolveActivity(getPackageManager()) != null) {
context.startActivity(intent);
}
}
}
答案 2 :(得分:0)
String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
答案 3 :(得分:0)
您似乎必须使用intent.setData传递uri。尝试这样做,
String url = "your url";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
答案 4 :(得分:-1)
假设您使用的是fragment
尝试:
getActivity().startActivity(i);
此处getActivity()
会返回context