2012-04-11 133 views
0

我为了通过下面的代码连接到谷歌导航开发一个应用程序..错误:无法找到符号:方法startActivity

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

我无法找到解决问题的办法......

钍ANK你非常多,

+2

上下文没有叫startActivity一个公共静态方法()这是一个实例方法,请阅读文档。 – JoxTraex 2016-07-14 23:52:56

回答

0

试试这个方法:

Context oContext; 
oContext= mContext; 
Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("google.navigation:q=" + latitud+ "," + longitud)); 
oContext.startActivity(i); 
+0

imran khan,现在工作!非常感谢!! – user1325591 2012-04-13 09:16:24

+2

什么是mContext? – 2015-07-03 11:48:23

0

要解释一下再回答以上。 它的意思是,你不能/不应该不叫静态startActivity(intent).

Context.startActivity(intent); //wrong notice capital 'C' 

你需要一个Context实例。

所以,做最简单的事情,是一个参数添加到您的静态方法: (注意:小写的“C”作为在Java方法名的约定)

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

希望这有助于:)