0

メニューボタンをクリックしてアクセスするアプリに別のページ(レイアウトとサブアクティビティ)を作成しようとしています。メニューボタンをもう一度クリックすると MainActivity と activity_mail.xml レイアウトに戻るように切り替えたいと思います。

私はこのコードである程度の成功を収めています:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    setContentView(R.layout.settings);



    return true;
}

これにより、settings.xml レイアウトに正常に切り替わります。しかし、メニュー ボタンをもう一度押したときに activity_main.xml レイアウトに戻るにはどうすればよいでしょうか。

4

1 に答える 1

1

ただし、これはoptionsMenuが作成された目的ではありません。それを行う方法はたくさんあります。これを行う方法の 1 つは、ブール フィールド変数を作成することです。

private boolean isInMailLayout = true;
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    if(isInMainLayout){
        setContentView(R.layout.settings);
        isInMailLayout = false;
    }
    else {
        setContentView(activity_mail.xml);
        isInMailLayout = true;

    }

    return true;
}

の目的optionsMenu:

optionsMenu は、オーバーフロー ドロップダウン リスト(ActionBar を使用する場合) または電話の下部のグリッド(ActionBar を使用しない場合) にメニューを表示する必要があります。

一方、メニューを表示したくないが、レイアウトを変更したい。このために新しいアクティビティを開始することをお勧めします。

于 2013-04-24T23:18:46.330 に答える