2012-04-11 134 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 
    } 
} 

希望這有助於:)