导航抽屉和工具栏

时间:2016-07-18 19:59:33

标签: android android-toolbar android-navigation-drawer

让我的导航抽屉和工具栏在我的应用上运行时出现问题。当我第一次加载应用程序时,它可以工作,但是当我导航到另一个页面时,除非我将setUpNavigationDrawer()取出,否则它会崩溃。工具栏显示所有活动,但后退按钮不起作用。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bestworkouts.sheikoworkout/com.bestworkouts.sheikoworkout.MyWorkout}: java.lang.NullPointerException: 
Attempt to invoke virtual method 'void com.bestworkouts.sheikoworkout.NavigationDrawerFragment.setUp
(int, android.support.v4.widget.DrawerLayout, android.support.v7.widget.Toolbar)'
 on a null object reference

这是我的setUp代码:

protected void setUpNavigationDrawer() {

    ListView navigationListView;

    List<NavigationDrawerItem> items = new ArrayList<>();
    items.add(new NavigationDrawerItem(android.R.drawable.ic_menu_agenda, AppConstant.DRAWER_HOME));
    items.add(new NavigationDrawerItem(android.R.drawable.ic_popup_reminder, AppConstant.DRAWER_MY_WORKOUT));
    items.add(new NavigationDrawerItem(android.R.drawable.ic_menu_gallery, AppConstant.DRAWER_MAXES));
    items.add(new NavigationDrawerItem(android.R.drawable.ic_menu_delete, AppConstant.DRAWER_PROGRESS));
    items.add(new NavigationDrawerItem(android.R.drawable.ic_menu_preferences, AppConstant.DRAWER_WORKOUTS));
    items.add(new NavigationDrawerItem(android.R.drawable.ic_menu_help, AppConstant.DRAWER_HELP_AND_FEEDBACK));

    //initialize the drawer fragment
    mDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
    mDrawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolBar);

    NavigationDrawerAdapter navigationDrawerAdapter = new NavigationDrawerAdapter(getApplicationContext(), items);
    //initialize the list view for navigation drawer
    navigationListView = (ListView) findViewById(R.id.navigation_list);
    navigationListView.setAdapter(navigationDrawerAdapter);

在我创建的其他课程中:

 @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_workout);
    mToolBar =activateToolbar();
    setUpNavigationDrawer();

和my_workout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context=".MyWorkout">

<include android:id="@+id/app_bar"
         layout="@layout/toolbar" />

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/listViewWorkouts"/>
</LinearLayout>

fragment_navigation_drawer,drawer_layout都在工作,因为它对启动时的第一个活动起作用!非常感谢!

0 个答案:

没有答案
相关问题