如何从导航抽屉列表中打开片段

how to open fragment from navigation drawer list

我在打开片段活动时遇到问题,我是 android 设备编程的新手,但我认为这很有趣,我想为自己制作一些应用程序。
我有一个带有滑动菜单的示例,一切正常,所以我有三个列表项(主页、设置、关于)我想在按下其中一个时打开一个 activity 这是我的 mainActivity,它如果有人告诉我应该如何完成此代码才能打开其他活动,那就太好了。 提前谢谢你。

我的 MainActivity 是:

public class MainActivity extends BaseActivity {
    FragmentStackManager fm, sliding_menu;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setUpView();
        menuToggeleSetUp(savedInstanceState);
    }
     void setUpView() {
        fm = new FragmentStackManager(this);
        sliding_menu = new FragmentStackManager(this);
        drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        fm.addFragment(new MainFragment(), R.id.main_frame, false, FragmentTransaction.TRANSIT_NONE, false);
        sliding_menu.addFragment(new SlidingMenuFragment(), R.id.slide_fragment, false, FragmentTransaction.TRANSIT_NONE, false);
    }
    void menuToggeleSetUp(Bundle savedInstanceState) {
        mDrawerToggle = new ActionBarDrawerToggle(this, drawer,
                R.drawable.ic_drawer, // nav menu toggle icon
                R.string.app_name
        ) {
            public void onDrawerClosed(View view) {
                getSupportActionBar().setTitle(mTitle);
                               invalidateOptionsMenu();
            }
            public void onDrawerOpened(View drawerView) {
                getSupportActionBar().setTitle(mDrawerTitle);
                                invalidateOptionsMenu();
            }
        };
        drawer.setDrawerListener(mDrawerToggle);

        if (savedInstanceState == null) {
                  }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
          getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
               mDrawerToggle.syncState();
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (mDrawerToggle.onOptionsItemSelected(item)) {
                     return true;
        }
        if (id == R.id.action_settings) {
            System.out.println("CLEAR SETTINGS STARTED");
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
                mDrawerToggle.onConfigurationChanged(newConfig);
    }
}

谢谢你的帮助 但是我想保留这个,因为汉堡包动画所以我发现了一些我完成了我的代码但在 logcat 上出错的东西 如果有人应该帮助我,那就太好了 所以我所做的是:

mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
 private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {
      updateDisplay(position);
    }
}
 private void updateDisplay(int position) {
    Fragment fragment = null;
    switch (position) {
        case 0:
            System.out.println("ACTIVITY ONE");
            //fragment = new Home_Fragment();
            break;
        case 1:
            //fragment = new Settings_Fragment();
            System.out.println("ACTIVITY TWO");
           // startActivity(new Intent(this, Preferences.class));

                break;
            //case 2:
            //  fragment = new TB_Fragment();
            //break;
        default:
            break;
    }
if (fragment != null) {
        android.app.FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();

        // update selected item and title, then close the drawer
        //setTitle(menutitles[position]);
        drawer.closeDrawer(mDrawerList);
    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }

我的 logcat 是

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.intelligent_screen/com.intelligent.screen.View.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setOnItemClickListener(android.widget.AdapterView$OnItemClickListener)' on a null object reference

抽屉式导航使用此示例 https://developer.android.com/training/implementing-navigation/nav-drawer.html 这显示了如何打开片段每个导航项点击

打开新的 activity 使用这个

Intent intent = new Intent(MainActivity.this, AnotherActivity.class);
finish();
startActivity(intent);