0

したがって、私のアプリケーションは、テキストを表示する最初のアクティビティで構成され、アクションバーには [ファイル] メニューがあり、そこに [私の場所] オプションを配置します。

次のように、onOptionItemSelected を使用して mainActivity の別のアクティビティを呼び出します。

    public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_photo:
            openPhoto();
            return true;
        case R.id.action_video:
            openVideo();
            return true;
        case R.id.action_map:
            Intent intent = new Intent(this, GPSTracker.class);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }

マニフェストでは、2 番目のアクティビティを次のように宣言します。

     <activity
        android:name="com.example.locateme.GPSTracker"
        android:label="@string/app_name" > 
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>

そして GPSTracker.java で私はこれを書きます:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gpstracker);
}

また、場所を見つけるための私のコードもあります。アプリを実行していMy Locationますが、オプションを押すとアプリがクラッシュします。

GPSアクティビティの意図を削除した後のlogcatエラーは次のとおりです

私が見逃したものがあるかもしれない場合に備えて、アプリの完全なコードはここにあります。2 番目のアクティビティを間違った方法で呼び出していますか?

4

2 に答える 2

1
java.lang.InstantiationException: can't instantiate class com.example.locateme.GPSTracker; no empty constructor

は明らかなエラーです。

GPSTracker クラスのどこかに次のような定義があります

public GPSTracker(SomeClass referenceName) {
     //...
}

このコード ブロックは、削除するか、パラメーターのないコンストラクターに置き換える必要があります。必要に応じて最初のオプション:onCreateコンストラクターとして使用します。

于 2013-08-07T12:33:41.943 に答える