Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在默认导航抽屉活动中实现工具栏?_Android_Android Actionbar_Navigation Drawer_Android Toolbar - Fatal编程技术网

Android 如何在默认导航抽屉活动中实现工具栏?

Android 如何在默认导航抽屉活动中实现工具栏?,android,android-actionbar,navigation-drawer,android-toolbar,Android,Android Actionbar,Navigation Drawer,Android Toolbar,我正在使用Android Studio 1.0.1。我创建了一个新的导航抽屉活动,默认情况下由该IDE提供。它创建了2个Java文件- HomePage.java扩展了android.support.v7.app.AndroidBarActivity 扩展片段的导航抽屉片段 除此之外,它还为我提供了3个布局文件- activity\u home\u page.xml fragment\u home\u page.xml fragment\u navigation\u drawer.xml

我正在使用Android Studio 1.0.1。我创建了一个新的
导航抽屉活动
,默认情况下由该IDE提供。它创建了2个Java文件-

  • HomePage.java
    扩展了
    android.support.v7.app.AndroidBarActivity
  • 扩展
    片段的导航抽屉片段
除此之外,它还为我提供了3个布局文件-

  • activity\u home\u page.xml
  • fragment\u home\u page.xml
  • fragment\u navigation\u drawer.xml
现在我想做的是隐藏动作栏,取而代之的是工具栏,因为我想做一些详细的设计。为此,我采取了以下步骤:

  • styles.xml

    真的 假的

  • AndroidManifest.xml
    android:theme=“@style/AppTheme”

  • 创建了
    工具栏
    布局,并将其包含在
    活动主页.xml中

  • 将工具栏对象添加到
    HomePage.java

    Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);设置支持操作栏(工具栏)

但不幸的是,每当我启动
主页
活动时,我的应用程序强制关闭。有什么建议吗?


问题:

在你的片段中,你有:

toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
...
toolbar.getContext()
但是,当您调用
findViewById
时,活动尚未调用
setContentView
。这意味着工具栏尚未膨胀,并且
toolbar
设置为
null
。因此
toolbar.getContext()
抛出一个NPE

修复:

只需调用
getActivity()
,即可获得上下文,而不是
toolbar.getContext()


如果您的片段确实需要工具栏,您应该在活动的
onCreate
之后调用它。一个很好的地方是创建一个活动:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
}

custom\u toolbar.xml
请。添加了
custom\u toolbar.xml