Utilisation de la barre d'outils et gestion des exceptions (la barre d'outils ne prend pas effet)

1. Traitement des exceptions

Tentative d'appeler la méthode virtuelle 'ActionBar.setHomeButtonEnabled (boolean)' sur une référence d'objet null

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. La raison

Le fichier de disposition ToolBar n'est pas référencé dans la disposition Activity, mais uniquement défini dynamiquement, de sorte que lorsque vous utilisez ou obtenez l'ActionBar, vous obtiendrez une erreur car la ToolBar n'est pas définie correctement.

3. Résoudre

3.1 Fichier de mise en page

// 主布局文件
<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.2 Fichiers Java

    private void initToolBar() {
    
    
        Toolbar toolbar_test = (Toolbar)findViewById(R.id.toolbar_test);
        setSupportActionBar(toolbar_test);
    }

4. Résultats

barre d'outils 、 barre d'actions

5. Questions nécessitant une attention particulière

Java présente ToolBar comme suit:

import androidx.appcompat.widget.Toolbar;

Je suppose que tu aimes

Origine blog.csdn.net/weixin_37627774/article/details/109030902
conseillé
Classement