1

次のコードで 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); 
^

私は問題の解決策を見つけることができません...

どうもありがとうございました、

4

3 に答える 3

1

上記の答えをもう少し説明します。それが意味することは、静的に呼び出すことができない/すべきではないということですstartActivity(intent).

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

Context インスタンスが必要です。

したがって、最も簡単なことは、静的メソッドにパラメーターを追加することです (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
    }
}

お役に立てれば :)

于 2016-06-14T13:03:53.663 に答える
0

この方法を試してください:

Context oContext;
oContext= mContext;
Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("google.navigation:q=" + latitud+ "," + longitud));
oContext.startActivity(i);
于 2012-04-11T05:01:18.810 に答える