【问题标题】:Android Shared menu between activitiesAndroid 活动之间的共享菜单
【发布时间】:2013-12-13 12:34:51
【问题描述】:

我需要创建一个在所有活动之间具有共享菜单的应用程序,但我犹豫了 在为所有活动创建相同的菜单并使这些活动成为“单件”之间,或者创建多个片段并将它们用于具有菜单的一个活动中。

我想让我的应用程序与大多数设备兼容,所以我不知道哪一个是最好的(用于内存管理和可重用的东西......)

我应该尝试什么?如果有比这两个更好的过程,请随时提出建议:)

【问题讨论】:

    标签: android menu android-fragments android-activity android-fragmentactivity


    【解决方案1】:

    一种方法是定义一个父类活动,所有其他活动都将从该活动继承。在父类onCreateOptionsMenu 中定义所有活动通用的菜单:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.common_menu, menu);
        return true;
    }
    

    【讨论】:

      【解决方案2】:

      我认为使用Fragments 会更好。您将拥有一个带有菜单的 Activity,如果 Fragment 有个人菜单,您可以通过将以下方法添加到您的 Fragment 轻松更新 actionBar:

      @Override
      public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
          inflater.inflate(R.menu.menu_preview, menu);
          super.onCreateOptionsMenu(menu, inflater);
      }
      
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle item selection...
      }
      

      编辑

      还记得在 Fragment 的 onCreate() 方法中添加 setHasOptionsMenu()。在这种情况下,Android 框架调用 Fragment 类中的 onCreateOptionsMenu() 方法,并将其菜单项添加到 Activity 添加的菜单项中(请参阅this link)。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2014-04-13
      • 2011-07-13
      • 2013-04-12
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多