在Android Studio上工作时,无法在Java编译器中转换显示不兼容类型的Android小部件工具栏的错误。
Toolbar toolbar = (Toolbar)findViewById(R.id.toolBar);
toolbar.setTitle("GPS PRESENCE SYSTEM");
setSupportActionBar(toolbar);
错误:类型不兼容:android.widget.Toolbar无法转换 到androidx.appcompat.widget.Toolbar
答案 0 :(得分:1)
此错误是因为您的工具栏是使用android.widget.Toolbar
创建的。
但是您正在使用androidX。
这也是同一种错误。
java.lang.ClassCastException:androidx.appcompat.widget.Toolbar无法转换为android.widget.Toolbar
要解决这种情况,您可以将它们添加到MainActivity.java文件中的行中(以导入)。
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
请确保删除或删除此android.widget.Toolbar
。
然后再次检查是否有这样的错误。因为有时您可能需要导入更多。
答案 1 :(得分:1)
AndroidX是经过改进的新支持库
import androidx.appcompat.widget.Toolbar;
您可以在这里here
中查看更多信息Androidx的工具栏旨在向后兼容,同时
android.widget.Toolbar
是当前平台类型
答案 2 :(得分:0)
将活动工具栏导入更改为:
导入android.support.v7.widget.Toolbar;
答案 3 :(得分:0)
您同时使用androidx和Android。那抛出一个错误。使用androidx或android appcompat。
答案 4 :(得分:0)
尝试替换为:
import android.widget.Toolbar;
与此:
import androidx.appcompat.widget.Toolbar;
顺便说一句,如果您使用的是androidx。运行其迁移过程。 以后将不再支持android支持库。 您可以在这里阅读有关内容:
答案 5 :(得分:0)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar); //No Problerm
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
我们必须导入androidx.appcompat.widget.Toolbar; 不要导入android.widget.Toolbar;
答案 6 :(得分:0)
您可以调用ActivityCompat#requireViewById
,该方法可以忽略强制类型转换并返回一个@NonNull
Toolbar
引用:
Toolbar toolbar = ActivityCompat.requireViewById(this, R.id.toolbar);
setSupportActionBar(toolbar);
可以在AppCompatActivity#getSupportActionBar
返回的@Nullable
ActionBar
参考上设置标题:
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle("GPS PRESENCE SYSTEM");
}
答案 7 :(得分:0)
只需删除
import android.widget.Toolbar;
并添加
import androidx.appcompat.widget.Toolbar;
答案 8 :(得分:0)
据其他人报道
import android.widget.Toolbar
正在制造问题。
替换为
import androidx.appcompat.widget.Toolbar
主要是根据 android 的建议,我们选择了该工具,而没有注意到 android 或 androidx 的可靠性。 这会导致此错误。