繁体   English   中英

无法转换为 androidx.appcompat.widget.Toolbar

[英]cannot be cast to androidx.appcompat.widget.Toolbar

每当我启动此活动并抛出错误时,我的应用程序就会崩溃:

引起:java.lang.ClassCastException: android.widget.Toolbar 不能转换为 androidx.appcompat.widget.Toolbar

下面是我的代码,我该如何解决这个问题?

package com.example.irecipe;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.os.Bundle

import android.widget.TextView;

public class RecipeActivity extends AppCompatActivity {

    Toolbar toolbar;
    TextView toolbar_title;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recipe);

        toolbar = (androidx.appcompat.widget.Toolbar) findViewById(R.id.toolBar);
        setSupportActionBar(toolbar);

        toolbar_title = findViewById(R.id.toolBar_title);
        toolbar_title.setText("Recipe");

    }

}

工具栏的 XML

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white_grey"
    android:minHeight="?attr/actionBarSize"
    app:menu="@menu/menu_top_right"
    app:titleTextColor="@android:color/white"/>

工具栏的 Java 代码

Toolbar toolbar;
toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle("");
    }

希望这对您有用,并且它经过测试并适合我。

改变这个:

toolbar = (androidx.appcompat.widget.Toolbar) findViewById(R.id.toolBar);

到:

toolbar = (Toolbar) findViewById(R.id.toolBar);

从行中删除(androidx.appcompat.widget.Toolbar)toolbar = (androidx.appcompat.widget.Toolbar) findViewById(R.id.toolBar)

只需删除这个(androidx.appcompat.widget.Toolbar) ,它就会像toolbar = findViewById(R.id.toolBar); .

引起:java.lang.ClassCastException: android.widget.Toolbar 不能转换为 androidx.appcompat.widget.Toolbar

我有 2 个您可以尝试的解决方案:

  1. import androidx.appcompat.widget.Toolbarimport androidx.appcompat.widget.Toolbar改为import android.widget.Toolbar并去掉强制转换, toolbar = findViewById(R.id.toolBar);
  2. <android.widget.Toolbar...的布局实现更改为androidx.appcompat.widget.Toolbar...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM