我不知道为什么我会得到这个例外。
这是我的代码 -
toolbar.xml
<android.support.design.widget.AppBarLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
我将此布局包含在我的xml文件中 -
<include android:id="@+id/photoGalleryToolbar"
layout="@layout/toolbar"/>
然后我在我的活动中使用以下代码 -
Toolbar toolbar = (Toolbar) findViewById(R.id.photoGalleryToolbar);
setSupportActionBar(toolbar);
final android.support.v7.app.ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeAsUpIndicator(R.drawable.ic_keyboard_backspace_white_24dp);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle("Kidster Photo Gallery");
actionBar.setDisplayHomeAsUpEnabled(true);
}
例外情况将发生在以下一行 -
Toolbar toolbar = (Toolbar) findViewById(R.id.photoGalleryToolbar);
我检查了导入,他们都是对的,我正在使用支持库。
答案 0 :(得分:1)
替换你的代码:
Toolbar toolbar = (Toolbar) findViewById(R.id.photoGalleryToolbar);
使用:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
您在ID上犯了一个错误,R.id.photoGalleryToolbar
是布局的根视图,您在此处包含的是AppBarLayout
。 Toolbar
的ID是您在R.id.toolbar
中定义的toolbar.xml
。