Android-如何隐藏当前片段的菜单选项

量子虎

我有一个带有FrameLayout和菜单的ActionBar活动。当用户单击菜单项时,我用相关的新片段替换了片段。但是,我看不到明显的方法来删除所选片段的菜单项。

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
            StudyFragment startFragment = new StudyFragment();
            startFragment.setArguments(getIntent().getExtras());
            getSupportFragmentManager().beginTransaction().add
                                      (R.id.container, startFragment).commit();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        switch (id) {
        case R.id.action_study:
            replaceFragment((Fragment)new StudyFragment());
            break;
        case R.id.action_list: 
            replaceFragment((Fragment)new ListFragment());
            break;
        // etc
        }
        return super.onOptionsItemSelected(item);
    }

    private void replaceFragment(Fragment f) {
        FragmentTransaction transaction =
                                getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.container, f);
        transaction.addToBackStack(null);

        transaction.commit();
      }

Google关于更改菜单的文档说禁用onPrepareOptionsMenu中的菜单-但是我怎么知道已选择了哪个项目?

-实施解决方案-

使用下面的Muhammed Refaat解决方案,我向班级添加了两个新成员:

private Menu activityMenu;
private MenuItem curMenuItem;

在onCreateOptionsMenu中设置它们

activityMenu = menu;
curMenuItem = activityMenu.findItem(R.id.action_study);
curMenuItem.setVisible(false);

并在onOptionsItemSelected上更改了它们

curMenuItem.setVisible(true);
curMenuItem = activityMenu.findItem(id);
curMenuItem.setVisible(false);
穆罕默德·里法特

首先获取要删除的项目:

MenuItem item = menu.findItem(R.id.your_action);

然后设置它的可见性false

item.setVisible(false);

如果问题出在获取菜单上(因为它不在片段中),则可以轻松地context从包含菜单的活动中获取a并通过它获取菜单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可见片段时,Android ActionBar溢出菜单选项不起作用

来自分类Dev

Android-在片段布局中看不到菜单选项

来自分类Dev

为什么在选择导航抽屉 android 菜单选项时不显示所需的片段?

来自分类Dev

Android-如何在没有菜单按钮的手机上使用菜单选项?

来自分类Dev

如何隐藏下拉菜单选项?

来自分类Dev

如何在android api级别17设备中获取菜单选项?

来自分类Dev

Android:如何在菜单选项中使用Sub_menu类别

来自分类Dev

长按paytm和swiggy等Android应用程序图标后如何显示菜单选项?

来自分类Dev

Android开发如何避免使用片段和选项菜单保存上下文

来自分类Dev

如何在Android布局文件中获得两个带有下拉菜单的菜单选项?

来自分类Dev

缺少操作栏和菜单选项-Android

来自分类Dev

Android-以编程方式选择菜单选项

来自分类Dev

android手表选择菜单选项?

来自分类Dev

Android如何从片段编辑操作栏菜单

来自分类Dev

Android:从viewPager选项卡片段之一启动片段时,隐藏viewPager选项卡

来自分类Dev

Android如何更改背景选项菜单

来自分类Dev

片段中的Android单选按钮

来自分类Dev

在操作栏中隐藏菜单选项

来自分类Dev

android选项菜单崩溃

来自分类Dev

Android StartActivity选项菜单

来自分类Dev

Android-如何在onActivityResult()之后返回当前片段?

来自分类Dev

Android:旋转时,当前片段消失(如何保存状态)

来自分类Dev

Android工具栏,如何隐藏和显示片段

来自分类Dev

MVVMCross + Android:ViewModel属性上的DataBinding上下文菜单选项吗?

来自分类Dev

如何在Android的片段中使用共享首选项?

来自分类Dev

Android获取当前片段的ID

来自分类Dev

在Android中获取当前片段

来自分类Dev

Android获取当前片段的ID

来自分类Dev

Android片段操作栏菜单

Related 相关文章

  1. 1

    可见片段时,Android ActionBar溢出菜单选项不起作用

  2. 2

    Android-在片段布局中看不到菜单选项

  3. 3

    为什么在选择导航抽屉 android 菜单选项时不显示所需的片段?

  4. 4

    Android-如何在没有菜单按钮的手机上使用菜单选项?

  5. 5

    如何隐藏下拉菜单选项?

  6. 6

    如何在android api级别17设备中获取菜单选项?

  7. 7

    Android:如何在菜单选项中使用Sub_menu类别

  8. 8

    长按paytm和swiggy等Android应用程序图标后如何显示菜单选项?

  9. 9

    Android开发如何避免使用片段和选项菜单保存上下文

  10. 10

    如何在Android布局文件中获得两个带有下拉菜单的菜单选项?

  11. 11

    缺少操作栏和菜单选项-Android

  12. 12

    Android-以编程方式选择菜单选项

  13. 13

    android手表选择菜单选项?

  14. 14

    Android如何从片段编辑操作栏菜单

  15. 15

    Android:从viewPager选项卡片段之一启动片段时,隐藏viewPager选项卡

  16. 16

    Android如何更改背景选项菜单

  17. 17

    片段中的Android单选按钮

  18. 18

    在操作栏中隐藏菜单选项

  19. 19

    android选项菜单崩溃

  20. 20

    Android StartActivity选项菜单

  21. 21

    Android-如何在onActivityResult()之后返回当前片段?

  22. 22

    Android:旋转时,当前片段消失(如何保存状态)

  23. 23

    Android工具栏,如何隐藏和显示片段

  24. 24

    MVVMCross + Android:ViewModel属性上的DataBinding上下文菜单选项吗?

  25. 25

    如何在Android的片段中使用共享首选项?

  26. 26

    Android获取当前片段的ID

  27. 27

    在Android中获取当前片段

  28. 28

    Android获取当前片段的ID

  29. 29

    Android片段操作栏菜单

热门标签

归档