AndroidX Android Studio 3.5.2将actionbar标题设置为空
我正在尝试使用导航抽屉布局设置活动的标题。然而,我得到下面的错误。事实上,android的前一个版本可以很好地使用类似的代码 java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.app.ActionBar.setTitle(java.lang.CharSequence)” 位于com.aua.archi.app.MainActivity.onCreate(MainActivity.java:26) 我不确定这里出了什么问题,安卓Studio 3.5.2的AndroidX Android Studio 3.5.2将actionbar标题设置为空,android,Android,我正在尝试使用导航抽屉布局设置活动的标题。然而,我得到下面的错误。事实上,android的前一个版本可以很好地使用类似的代码 java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.app.ActionBar.setTitle(java.lang.CharSequence)” 位于com.aua.archi.app.MainActivity.onCreate(MainActivity.java:26) 我不确定这里出了什么问题,安卓S
AndroidX
和材质设计组件是否有任何变化
JAVA
XML
工具栏
试试这个
<androidx.appcompat.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="4dp"
/>
并将文本设置为工具栏
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setText("asdfsdf");
堆栈跟踪与代码不匹配
getSupportActionBar()
将不会返回android.app.ActionBar
,我看不到您在哪里调用setTitle()
。无论如何,我只假设这些是来自不同测试运行的旧日志,并且您当前正在运行给定的代码和XML。您的问题将是您在
元素上设置的ID。它会覆盖包含布局中根视图上的ID,因此您的MaterialToolbar
最终会显示IDtoolbar\u布局,并且findViewById(R.ID.toolbar)
将返回空值。请从
中删除ID,或者将findViewById()
调用改为传递R.ID.toolbar\u布局
。@MikeM。我刚读了第二条评论。让我试试看,然后再告诉你。非常感谢。@MikeM。设置toolbar\u布局fortoolbar
后,解决了该问题。我想我需要设置实际的工具栏id,而不是包括布局。谢谢。我不知道如何解决这个问题,或者删除它,或者像这样保留它?我已经把它作为一个副本关闭了,因为它是一个相当常见的问题,所以它基本上被标记为已解决,就像这样。这完全取决于你,你想保留还是删除它。不管怎样,很高兴你能成功。干杯
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.MaterialToolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.MaterialComponents.Toolbar.Primary"
tools:targetApi="lollipop" />
<androidx.appcompat.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="4dp"
/>
import androidx.appcompat.widget.Toolbar;
private Toolbar toolbar;
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setText("asdfsdf");