我正在开发一个应用程序,以便通过以下代码连接到Google Navigator。
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
public static void Call_GoogleMapsNavigation(int longitud,int latitud)
{
Intent i = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("google.navigation:q=" +latitud+ ","+longitud+""));
Context.startActivity(i);
}..。但我得到以下错误:
返回错误:
GWDCPSET_GlobalProcedures_MobileDevice.java:1223: cannot find symbol
symbol : method startActivity(android.content.Intent)
location: class antay.cfsatv30.wdgen.GWDCPSET_GlobalProcedures_MobileDevice
startActivity(i);
^我找不到解决这个问题的办法。
非常感谢,
发布于 2016-06-14 21:03:54
为了进一步解释上面的答案。它的意思是你不能/不应该静态地调用startActivity(intent).
Context.startActivity(intent); //wrong notice capital 'C'您需要一个上下文实例。
因此,最简单的做法就是向静态方法添加一个参数:(注意,在Java语言中,方法名的约定是小写的'c‘)
public static void call_GoogleMapsNavigation(final Context context, int longitud,int latitud) {
...
context.startActivity(i); //right
}例如,在您的活动或应用程序中包含上下文实例引用的任何组件中,您可以按如下方式调用您的方法
为了简单起见,我假设你从一个活动中调用它(总是持有对上下文的引用):
MainActivity extends AppCompatActivity {
OnCreate(Bundle savedInstance) {
<YourHelperClass>.callGoogleMapsNavigation(this, 23, 44); //static call
}
}希望这能有所帮助:)
https://stackoverflow.com/questions/10099600
复制相似问题