导航项setVisible

时间:2016-12-25 19:47:57

标签: android android-navigation-drawer

我要将可见的导航项(true或false)设置为某些条件。

item = (MenuItem)getActivity().findViewById(R.id.find_doctor_nav);mInsertBtn.setOnClickListener(new View.OnClickListener() {
      @Override
        public void onClick(View view) {if(type.equals("Doctor")){
                    item.setVisible(false);
                }
                if(type.equals("Patient")){
                    item.setVisible(true);
                }
                CharSequence text = "User session start..!";
                Toast toast = Toast.makeText(getContext(), text, Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER,0,0);
                toast.show();
            }
        }
    });

这是我的一段代码,我将会这样做。但是这给了我错误

  

android.view.MenuItem android.view.MenuItem.setVisible(boolean)'在空对象引用上

我在片段课程中做过但是我的代码不能正常工作。请建议我一些适当的解决方案。感谢....

1 个答案:

答案 0 :(得分:3)

您应该找到NavigationView并执行

//Inside Activity

public void setItemVisible(boolean visible){
    NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view);
    toggleVisibility(navigationView.getMenu(), R.id.find_doctor_nav, visible);
}

private void toggleVisibility(Menu menu, @IdRes int id, boolean visible){
    menu.findItem(id).setVisible(visible);
}

您可以从菜单

中找到该项目

编辑:

使用Interface并让您的活动实施它。然后在Fragment中,拨打((NavigationMenuListener)getActivity).setItemVisible(true /*or false*/);

public interface NavigationMenuListener {
    void setItemVisible(boolean visible);
}

更多信息,请点击谷歌上的谷歌。还有更多的答案。