无法将android.widget.toolbar转换为androidx.appcompat.widget.toolbar,即使情况并非如此

xkftehaa  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(509)

我不知道为什么我会犯这个错误。我不是在两个不同的工具栏上进行转换
这是我的密码:

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)
laik7k3q

laik7k3q1#

在xml中,您可能只使用 <Toolbar></Toolbar> 在这种情况下,将从包中创建工具栏 android.widget . 所以如果你想打电话 findViewById 把它投给 androidx.appcompat.widget.Toolbar 它肯定会抛出一个runtimeexception。
如果您使用的是androidx,那么您必须将工具栏的xml声明更改为 <androidx.appcompat.widget.Toolbar></androidx.appcompat.widget.Toolbar> 然后您可以继续呼叫您的 (androidx.appcompat.widget.Toolbar) findViewByid(..) 哪个应该成功

u0njafvf

u0njafvf2#

xml文件中定义了错误的工具栏类。把它从

<Toolbar .../>

<androidx.appcompat.widget.Toolbar .../>

相关问题