让我的导航抽屉和工具栏在我的应用上运行时出现问题。当我第一次加载应用程序时,它可以工作,但是当我导航到另一个页面时,除非我将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都在工作,因为它对启动时的第一个活动起作用!非常感谢!