2

我使用了一种技术(http://united-coders.com/nico-heid/use-android-activitygroup-within-tabhost-to-show-different-activity)来开发一个应用程序,其中我有 3 个选项卡和每个选项卡有自己的ActivityGroup。我有每个活动的菜单。但是当我按下菜单按钮时,菜单没有出现。在做了一些随机跟踪后,我发现如果我在 ActivityGroup 中实现 onCreateOptionsMenu,那么只会出现菜单。我无法执行 Activity 的 onCreateOptionsMenu。请建议如何使用 Activity 菜单,因为我在单个 ActivityGroup 中有许多活动,并且通过在 ActivityGroup 中实现 onCreateOptionsMenu 不是处理此问题的正确方法。

4

1 回答 1

1

这是你如何使用它:在你的 ActivityGroup 类 onCreateOptionMenu() 调用当前ActivityonCreateOptionMenu()

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 回答