0

メニュー項目の新しいレイアウトを作成したい。たとえば、メニューには と の項目がAboutありExitます。アイテムをクリックするとAbout、クレジットを表示する新しいページに移動したい。

このようなものを作ったのですが、エラーが出てしまいました。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.xsi_zero, menu);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.aboutMenu:
        setContentView(R.layout.about);
        break;
    case R.id.exitGame:
        XsiZero.this.finish();
        break;
    }

    return true;
}

次の行にエラーが表示されます。

setContentView(R.layout.about);
4

1 に答える 1

0

アクティビティを開始したい場合は、Intents.インテンドを使用して開始します。意図は、私たちのメッセージを伝える一種のメッセンジャーであり、単純に定義するとリクエストです。

//This creates a new Intent object that has home and target
Intent niceIntent = new Intent(YourCurrentActivityName.this, TargetActivityName.class);

//Now start your Activity(Operation)
startActivity(niceIntent);

...

上記のホーム アクティビティに関するコードも、ターゲット アクティビティで何かを行う必要があります。

Target アクティビティの onCreate メソッド AFTER super.onCreate.. で、概要ページを表示するように設定する必要がありsetContentView(R.layout.about);ます。

また、もう1つの重要な問題はAndroidManifest.xml

Android システムはすべての変更を認識している必要があります。アプリケーションに新しいアクティビティを追加する場合は、通知する必要がありますAndroidManifest.xml

AndroidManifest.xml に新しいアクティビティを通知するにはどうすればよいですか?

   <activity
        android:name="com.yourpackagename.projectname"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
于 2013-03-06T20:29:06.730 に答える