記事ディレクトリ
1.例外処理
nullオブジェクト参照で仮想メソッド 'ActionBar.setHomeButtonEnabled(boolean)'を呼び出そうとしました
java.lang.RuntimeException: Unable to start activity ComponentInfo{
}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setHomeButtonEnabled(boolean)' on a null object reference
// ......
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setHomeButtonEnabled(boolean)' on a null object reference
// ......
2.理由
ToolBarレイアウトファイルはActivityレイアウトで参照されず、動的に設定されるだけなので、ActionBarを使用または取得すると、ToolBarが正常に設定されていないため、エラーが発生します。
3.解決する
3.1レイアウトファイル
// 主布局文件
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<include layout="@layout/toobar"/>
</LinearLayout>
// toolbar.xml文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar_test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentInsetStart="0dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Toolbar"
android:textSize="20dp" />
</androidx.appcompat.widget.Toolbar>
3.2Javaファイル
private void initToolBar() {
Toolbar toolbar_test = (Toolbar)findViewById(R.id.toolbar_test);
setSupportActionBar(toolbar_test);
}
4.結果
5.注意が必要な事項
Javaは次のようにToolBarを導入します。
import androidx.appcompat.widget.Toolbar;