android - Android Kotlin 生成的数据绑定类包含错误
问题描述
我是 android 程序开发的初学者,我一直在尝试熟悉使用数据绑定。我按照正确的步骤生成了我的数据绑定类,但是每当我尝试在我的程序中使用我生成的类时,总是会返回 null。在查看了许多可能的原因后,我意识到数据绑定类扩展了错误的超类。下面是我生成的类之一
public class FragmentDuosBindingImpl extends FragmentDuosBinding {
@Nullable
private static final androidx.databinding.ViewDataBinding.IncludedLayouts sIncludes;
@Nullable
private static final android.util.SparseIntArray sViewsWithIds;
static {
sIncludes = null;
sViewsWithIds = null;
}
// views
@NonNull
private final androidx.constraintlayout.widget.ConstraintLayout mboundView0;
// variables
// values
// listeners
// Inverse Binding Event Handlers
public FragmentDuosBindingImpl(@Nullable androidx.databinding.DataBindingComponent bindingComponent, @NonNull View root) {
this(bindingComponent, root, mapBindings(bindingComponent, root, 1, sIncludes, sViewsWithIds));
}
private FragmentDuosBindingImpl(androidx.databinding.DataBindingComponent bindingComponent, View root, Object[] bindings) {
super(bindingComponent, root, 0
);
this.mboundView0 = (androidx.constraintlayout.widget.ConstraintLayout) bindings[0];
this.mboundView0.setTag(null);
setRootTag(root);
// listeners
invalidateAll();
}
@Override
public void invalidateAll() {
synchronized(this) {
mDirtyFlags = 0x1L;
}
requestRebind();
}
@Override
public boolean hasPendingBindings() {
synchronized(this) {
if (mDirtyFlags != 0) {
return true;
}
}
return false;
}
@Override
public boolean setVariable(int variableId, @Nullable Object variable) {
boolean variableSet = true;
return variableSet;
}
@Override
protected boolean onFieldChange(int localFieldId, Object object, int fieldId) {
switch (localFieldId) {
}
return false;
}
@Override
protected void executeBindings() {
long dirtyFlags = 0;
synchronized(this) {
dirtyFlags = mDirtyFlags;
mDirtyFlags = 0;
}
// batch finished
}
// Listener Stub Implementations
// callback impls
// dirty flag
private long mDirtyFlags = 0xffffffffffffffffL;
/* flag mapping
flag 0 (0x1L): null
flag mapping end*/
//end}
如您所见,这个生成的类与典型的数据绑定类不同。该类扩展了 FragmentDuosFragment 类而不是 ViewDataBinding 类。我无法访问下面显示的任何元素
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="safi.oussama.codwarzonesquadlink.Fragments.DuosFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="405dp"
android:layout_height="505dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
下面是我的片段中用于扩展布局和生成数据绑定类的代码
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding:ViewDataBinding=DataBindingUtil.inflate(
inflater, R.layout.fragment_duos, container, false
)
return binding.root}
我在这个问题上进行了相当多的搜索,但没有发现任何与此错误非常相似的东西。当然,我不能编辑生成类的代码。我将非常感谢可以帮助我发现故障的解决方案或一些提示
解决方案
抱歉,这已经晚了,但我刚刚遇到了这个问题和解决方案。看起来您使用包含的布局。包含的 xml 布局需要包装在布局中。 解决方案
推荐阅读
- c - fopen() 在哪里搜索要读取的文件?
- c# - 在 C# 中重复位的有效方法是什么?
- php - 用零替换 PHP 字符串中的重复值
- reactjs - 启用 onHide 功能时反应引导模式未打开
- regex - 在非数字之间查找句点或逗号
- discord.js - Bot 上线,但嵌入不会发布到 discord
- java - 每次滴答时将数据存储到 ArrayList
- javascript - Javascript - HTML 视频 readyState DOM 未定义
- python-3.x - 调用 NLTK 并在 databricks pyspark 上找不到“punkt”错误
- c++ - 按字典顺序选择更小的