0

好的,所以我在开发我的 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);





}


}
4

1 回答 1

1

您的菜单布局不正确。问题是“积分”,您不能有嵌套项目:<item><item></item></item>。将“积分”移动到子菜单或将其移动到常规菜单:

<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">
        <menu xmlns:android="http://schemas.android.com/apk/res/android" >
            <item
                android:id="@+id/stay"
                android:title="Cancel"/>
            <!-- I moved credits here -->
            <item
                android:id="@+id/credits"
                android:title="Credits"/>
            <item
                android:id="@+id/exit"
                android:title="Exit"/>
        </menu>
    </item>
    <item
        android:id="@+id/new_game"
        android:title="Start the Game"/>

    <!-- Or you can move credits here -->           
</menu> 

注意图层是<menu> <item> <menu> <item> </item> </menu> </item> </menu>.

于 2012-12-22T23:03:31.283 回答