好的,所以我在开发我的 Android 应用程序方面做得很好,但后来我遇到了这个问题。我试图将另一个菜单项添加到我以前从未遇到过问题的选项菜单中,但现在,如问题中所述,其中一个项目出现两次,另一个根本没有出现,然后当我输入它崩溃的 Credits 活动。下面是 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 文件中将积分设置为普通的“Hello World”活动。这是该活动的 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);
}
}