0

さて、私は自分の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);





}


}
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 に答える