2

テクニック(http://united-coders.com/nico-heid/use-android-activitygroup-within-tabhost-to-show-different-activity)を使用して、3つのタブと各タブがあるアプリを開発しました独自のActivityGroupがあります。アクティビティごとにメニューがあります。しかし、メニューボタンを押してもメニューが表示されません。いくつかのランダムな軌跡を実行した後、ActivityGroupにonCreateOptionsMenuを実装すると、メニューのみが表示されることがわかりました。ActivityのonCreateOptionsMenuを実行できません。単一のActivityGroupに多くのアクティビティがあり、ActivityGroupにonCreateOptionsMenuを実装することは、この問題を処理する正しい方法ではないため、Activityのメニューの使用方法を提案してください。

4

1 に答える 1

1

これを使用する方法は次のとおりです。ActivityGroupクラスonCreateOptionMenu()で、現在Activityの'sを呼び出します。onCreateOptionMenu()

public boolean onPrepareOptionsMenu(Menu menu)
{
    Activity activity = getLocalActivityManager().getCurrentActivity();
    return activity.onPrepareOptionsMenu(menu);
}

@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
    Activity activity = getLocalActivityManager().getCurrentActivity();
    return activity.onPrepareOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected (MenuItem item)
{
    Activity activity = getLocalActivityManager().getCurrentActivity();
    return activity.onOptionsItemSelected(item);
}

そしてあなたの個人でActivity

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
    return true;
}
@Override
public boolean onOptionsItemSelected (MenuItem item)
{
    switch (item.getItemId())
    {
    case R.id.MENU_LOGOUT:
        Dialog.showToast(this, "message");
        return true;
    case R.id.MENU_HELP:
        break;
    case R.id.MENU_ABOUT:
        break;
    }
    return super.onOptionsItemSelected(item);
}

これらのメソッドをオーバーライドActivityするだけでなく、必要な場合Menu

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
    return true;
}
于 2011-08-25T08:09:03.607 に答える