メニューからゲームを開始したい。Eclipse には 2 つのプロジェクトがあり、1 つはメニュー、もう 1 つは実際のゲームです。どちらもSimpleBaseGameActivityベースとして使用しています。ネット上の例は、以下のようなことをします。具体的には、インテントを作成し、そのインテントでアクティビティを開始します。以下のコードはNoClassDefFoundErroronを与えMyGame.classます。MyGame.class存在しないため、これは当然のことですが、むしろ存在MyGame.apkします。どうすればいいですか?
public boolean onMenuItemClicked(final MenuScene pMenuScene,
final IMenuItem pMenuItem,
final float pMenuItemLocalX,
final float pMenuItemLocalY) {
switch(pMenuItem.getID()) {
case MENU_PLAY:
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Intent intent = new Intent(getApplication(), MyGame.class);
startActivity(intent);
finish();
}
});
return true;
}
}
- - - 編集
menu itemクリックするとゲームが開始されるという点で、すべてが 1 つのプロジェクトで動作しています。ただし、「戻る矢印」をクリックすると、 に戻らずmenu、オペレーティング システムに戻ります。ファイル内のアクティビティ定義は次のmanifestとおりです。これは正しく見えますか?
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.mygame.MyGame"
android:label="@string/mygame_activity"
android:parentActivityName="com.menu.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.menu.MainActivity" />
</activity>
これを に追加しましたMyGameが、呼び出されません:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
--- 編集 この行を削除する必要がありました:
MainActivity.this.finish();