【问题标题】:Hiding actionbar button from expandable list view adapter of a fragment从片段的可扩展列表视图适配器中隐藏操作栏按钮
【发布时间】:2015-03-09 14:44:40
【问题描述】:

我有一个由片段视图寻呼机组成的活动。每个片段都包含一个可展开的列表视图。我想显示或隐藏可扩展列表视图适配器的操作栏按钮。我通过将菜单项传递给适配器类来尝试它,但它不起作用。无法在适配器类中显示或隐藏按钮。谁能帮我弄到这个。

【问题讨论】:

    标签: android android-fragments expandablelistadapter


    【解决方案1】:

    您可以做的是在您的 Activity 类中创建一个隐藏/显示函数,该函数可以访问您的 MenuItem(我假设您在此处对其进行充气)。

        MenuItem buttonToShowHide;
        ....................//rest of your activity code
         @Override
         public boolean onCreateOptionsMenu(Menu menu) {
              // Inflate the menu; this adds items to the action bar if it is present.
               getMenuInflater().inflate(R.menu.menu_mainmenu, menu);
            //Initialize your menuitem here: 
            buttonToShowHide=menu.findItem(R.id.your_menu_id);
            return true;
    }
    //Now you can make a function that will show/hide your menu item
    public void setButtonVisibility(boolean visible){
      //show item 
      buttonToShowHide.setVisibility(visible);
      invalidateOptionsMenu(); //invalidate the menu
    }
    

    现在您可以使用上下文轻松地在适配器类中获取您的活动实例。然后您可以使用上述功能来显示/隐藏您的菜单项。

        MyActivity myActivity=(MyActivity) context;
        //now you can access the above function as:
       myActivity.setButtonVisibility(true);
    

    我希望这对你有用。

    【讨论】:

    • 感谢@jonDoe 的回复。我尝试了同样的方法,但我必须在片段中使用该函数而不是活动。我该怎么做?
    • 你在哪里夸大你的菜单?在片段中还是在您的 Activity 中?
    • 由于片段是视图寻呼机的孩子,我在片段中膨胀它。 actionbar 按钮的显示和隐藏应该根据 viewpager 的子数据发生。
    • 您可以在片段中创建类似的函数,然后轻松调用适配器内部的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多