ToolBarの使用法と例外処理(ToolBarは有効になりません)

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;

おすすめ

転載: blog.csdn.net/weixin_37627774/article/details/109030902