我不确定为什么我会收到此错误。 我不是从两个不同的工具栏投射
这是我的代码:
androidx.appcompat.widget.Toolbar toolbar = (androidx.appcompat.widget.Toolbar) findViewById(R.id.toolbar_header);
setSupportActionBar(toolbar)
我在这里做错了什么。
这是错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mycontactlist, PID: 12667
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mycontactlist/com.example.mycontactlist.ContactListActivity}: java.lang.ClassCastException: android.widget.Toolbar cannot be cast to androidx.appcompat.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
xml 文件中定义的工具栏类错误。将其从
<Toolbar .../>
自
<androidx.appcompat.widget.Toolbar .../>
在您的 XML 中,您可能只使用<Toolbar></Toolbar>
声明了工具栏,在这种情况下,工具栏将从包android.widget
创建。因此,如果您尝试通过将其转换为androidx.appcompat.widget.Toolbar
来调用findViewById
,它肯定会抛出一个 RuntimeException。
如果您使用的是 AndroidX,则必须将工具栏的 xml 声明更改为<androidx.appcompat.widget.Toolbar></androidx.appcompat.widget.Toolbar>
然后,您可以继续调用应该成功的(androidx.appcompat.widget.Toolbar) findViewByid(..)