Android 如何打开navigationview所选项目

Android 如何打开navigationview所选项目,android,android-fragments,android-navigationview,Android,Android Fragments,Android Navigationview,我正在学习教程,我做了一些更改,删除了tablayout和viewpager,现在我试图将CheeseListFragment设置为导航视图的第一项,但它什么也没有显示,有人能告诉我如何实现吗 MainActivity.java public class MainActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; @Override protected void onCrea

我正在学习教程,我做了一些更改,删除了
tablayout
viewpager
,现在我试图将CheeseListFragment设置为
导航视图的第一项,但它什么也没有显示,有人能告诉我如何实现吗

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        final ActionBar ab = getSupportActionBar();
        ab.setHomeAsUpIndicator(R.drawable.ic_menu);
        ab.setDisplayHomeAsUpEnabled(true);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        if (navigationView != null) {
            setupDrawerContent(navigationView);
        }

      //  ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
      /*  if (viewPager != null) {
            setupViewPager(viewPager);
        }*/

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Here's a Snackbar", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

      //  TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
       // tabLayout.setupWithViewPager(viewPager);
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                mDrawerLayout.openDrawer(GravityCompat.START);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }



   /* private void setupViewPager(ViewPager viewPager) {
        Adapter adapter = new Adapter(getSupportFragmentManager());
        adapter.addFragment(new CheeseListFragment(), "Category 1");
        adapter.addFragment(new CheeseListFragment(), "Category 2");
        adapter.addFragment(new CheeseListFragment(), "Category 3");
        viewPager.setAdapter(adapter);
    }*/

    private void setupDrawerContent(NavigationView navigationView) {
        navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                menuItem.setChecked(true);
                mDrawerLayout.closeDrawers();
                return true;
            }
        });
    }

    static class Adapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragments = new ArrayList<>();
        private final List<String> mFragmentTitles = new ArrayList<>();

        public Adapter(FragmentManager fm) {
            super(fm);
        }

        public void addFragment(Fragment fragment, String title) {
            mFragments.add(fragment);
            mFragmentTitles.add(title);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getCount() {
            return mFragments.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitles.get(position);
        }
    }
}
public类MainActivity扩展了AppCompatActivity{
私人抽屉布局mDrawerLayout;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
最终ActionBar ab=getSupportActionBar();
ab.setHomeAsUpIndicator(R.drawable.ic_菜单);
ab.setDisplayHomeAsUpEnabled(真);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
if(navigationView!=null){
setupDrawerContent(导航视图);
}
//ViewPager ViewPager=(ViewPager)findViewById(R.id.ViewPager);
/*if(viewPager!=null){
设置viewPager(viewPager);
}*/
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“这是一个Snackbar”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});
//TabLayout TabLayout=(TabLayout)findViewById(R.id.tabs);
//tabLayout.setupWithViewPager(viewPager);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.sample\u动作,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例android.R.id.home:
mDrawerLayout.openDrawer(重力compat.START);
返回true;
}
返回super.onOptionsItemSelected(项目);
}
/*专用无效设置ViewPager(ViewPager ViewPager){
适配器适配器=新适配器(getSupportFragmentManager());
addFragment(新CheeseListFragment(),“类别1”);
addFragment(新CheeseListFragment(),“类别2”);
addFragment(新CheeseListFragment(),“类别3”);
viewPager.setAdapter(适配器);
}*/
私有void setupDrawerContent(导航视图导航视图){
navigationView.setNavigationItemSelectedListener(
新建NavigationView.OnNavigationItemSelectedListener(){
@凌驾
公共布尔值onNavigationItemSelected(MenuItem MenuItem){
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
返回true;
}
});
}
静态类适配器扩展FragmentPagerAdapter{
私有最终列表MFFragments=new ArrayList();
私有最终列表MFFragmentTitles=new ArrayList();
公共适配器(FragmentManager fm){
超级(fm);
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitles.add(标题);
}
@凌驾
公共片段getItem(int位置){
返回mFragments.get(位置);
}
@凌驾
public int getCount(){
返回mffragments.size();
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitles.get(位置);
}
}
}

您需要执行以下步骤

  • 在layout/include_list_viewpager.xml中用
    FrameLayout
    替换
    android.support.design.widget.TabLayout
  • 
    
  • 将方法
    showCheeseListFragment()
    添加到MainActivity类
  • private void showCheeseListFragment(){
    片段片段=新的CheeseListFragment();
    getSupportFragmentManager().beginTransaction()
    .替换(R.id.容器,碎片)
    .commit();
    }
    
  • 在MainActivity.java中的
    onCreate
    末尾调用此方法
  • //TabLayout TabLayout=(TabLayout)findViewById(R.id.tabs);
    //tabLayout.setupWithViewPager(viewPager);
    showCheeseListFragment();
    
  • Cange
    NavigationView.OnNavigationItemSelectedListener()
  • private void setupDrawerContent(导航视图导航视图){
    navigationView.setNavigationItemSelectedListener(
    新建NavigationView.OnNavigationItemSelectedListener(){
    @凌驾
    公共布尔值onNavigationItemSelected(MenuItem MenuItem){
    menuItem.setChecked(true);
    mDrawerLayout.closeDrawers();
    开关(menuItem.getItemId()){
    案例R.id.nav_主页:
    showCheeseListFragment();
    返回true;
    }
    返回true;
    }
    }
    );
    }
    
    为什么不使用默认的android导航抽屉。。这是谷歌提供的。。从这里检查