如何以编程方式更改选定的导航项目

Mi_*_*hah 3 android menu-items

当我创建一个新项目时,我使用了Navigation Drawer Activity 应用程序屏幕

现在,当我单击每个菜单项时,它会通过调用方法名称替换来打开一个片段。

    public boolean onNavigationItemSelected(MenuItem item) {
            // Handle navigation view item clicks here.
            int id = item.getItemId();

            if (id == R.id.nav_home) {
                replaceFragment(0);
                setTit = "Your State Info.";
                setTitle(setTit);
 } else if (id == R.id.nav_flashcards) {

            replaceFragment(1);
            setTit = "Flash Cards";
            setTitle(setTit);
Run Code Online (Sandbox Code Playgroud)

在片段1中,当检查的更改打开碎片时,我有一个射线组取决于所检查的无线电。

 @Override
    public void onCheckedChanged(RadioGroup radioGroup, int i) {

        RadioButton radioButton = (RadioButton)getActivity().findViewById(i);

            if(radioButton.getTag()==1)
        ((MainActivity) getActivity()).replaceFragment(0);
           else if ((radioButton.getTag()==2))
             ((MainActivity) getActivity()).replaceFragment(2);
    }
Run Code Online (Sandbox Code Playgroud)

该应用程序工作正常,但问题是如何更改选定的导航项并更改操作栏的标题。

可以使用这种方式

 ((MainActivity) getActivity()).onNavigationItemSelected(menuitem);
Run Code Online (Sandbox Code Playgroud)

但是从片段中,我如何访问menu>activity_main_drawer.xml 中的项目并通过 menuitem 传递它

Mi_*_*hah 5

这对我有用..

NavigationView navigationView = (NavigationView) getActivity().findViewById(R.id.nav_view);
        navigationView.getMenu().getItem(2).setChecked(true); 
Run Code Online (Sandbox Code Playgroud)