さて、私は自分のAndroidアプリの開発でかなりうまくやっていますが、それから私はこの問題に遭遇します。これまで問題がなかったオプションメニューに別のメニュー項目を作成しようとしましたが、質問で説明したように、ある項目が2回表示され、別の項目がまったく表示されないので、クラッシュするクレジットアクティビティを入力します。以下は、res / menu / menu.xmlとMainActivity.java(最初のもの)のコードです。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu); return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.quit:
return true;
case R.id.new_game:
Intent intent = new Intent(this, New_Game.class);
startActivity(intent);
return true;
case R.id.visit_site:
Intent inten = new Intent(this, Site.class);
startActivity(inten);
return true;
case R.id.stay:
Intent inte = new Intent(this, MainActivity.class);
startActivity(inte);
return true;
case R.id.credits:
Intent i = new Intent(this, Credits.class);
startActivity(i);
return true;
case R.id.exit:
Intent in = new Intent(Intent.ACTION_MAIN);
in.addCategory(Intent.CATEGORY_HOME);
in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(in);
finish();
System.exit(0);
return true;
}return false;
}
これがXMLメニューです
<menu
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/visit_site"
android:title="Visit the Medieval Site!" />
<item
android:id="@+id/quit"
android:title="Exit">
<item
android:id="@+id/credits"
android:title="Credits"
/>
<menu
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/stay"
android:title="Cancel"
/>
<item
android:id="@+id/exit"
android:title="Exit" />
</menu>
</item>
<item
android:id="@+id/new_game"
android:title="Start the Game"
/>
</menu>
クレジットをJavaファイルの通常の「HelloWorld」アクティビティとして設定しました。これがアクティビティのAndroidマニフェスト宣言です。エラーが偶然そこにあった場合に備えて、これを含めています。
<activity android:name=".Credits"
android:label="Application Credits"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape" >
</activity>
誰かが私がどこを台無しにしたか、そして私がそれを修正するために何をする必要があるかを教えてください。
これがSamが以下に尋ねたCredits.javaです
package com.apw.games.rpg.medieval;
import android.app.*;
import android.os.*;
import android.view.*;
public class Credits extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.credits);
}
}