【问题标题】:Android-Problem in Menu of Activity in Activity GroupAndroid-Activity Group中Activity菜单中的问题
【发布时间】:2011-11-03 10:26:52
【问题描述】:

我使用了一种技术 (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 不是处理此问题的正确方法。

【问题讨论】:

    标签: android android-activity activitygroup


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多