[英]Data Binding Not Working On Dialog - why?
我是 android 新手,我尝试从回收视图中获取数据的详细信息。 单击列表中的项目后,它会显示该项目的详细信息。 当我使用普通方法(R.findview)时它工作得很好,但是当我使用数据绑定时,它不会在对话框上显示任何细节。
Pojo类:
public class DosenModel {
private String nama;
private String id;
private String pelajaran;
private String foto;
@BindingAdapter("loadFotoDosen")
public static void loadImage(ImageView imageView, String imageUrl) {
Glide.with(imageView.getContext())
.load(imageUrl)
.into(imageView);
}
}
这就是我在适配器中初始化数据绑定的方式
public DosenAdapter.MyAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ListItemBinding listItemBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.list_item, parent, false);
return new MyAdapterViewHolder(listItemBinding);
}
我如何尝试在片段中显示对话框
private void detailDialog(DosenModel dosenModel){
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
Log.d("Dosen", dosenModel.toString());
detailLayoutBinding.setDosen(dosenModel);
AlertDialog dialog = builder.create();
dialog.show();
}
来自适配器的数据保存在 dosenmodel 变量中,我已经使用 Log.d 检查了数据
详细 XML :
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="dosen"
type="example.com.cleancodetest.model.DosenModel" />
</data>
<LinearLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title"
android:layout_marginStart="90dp"
android:text="DETAIL DOSEN"
android:textSize="24sp"
android:layout_marginTop="20dp" />
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:id="@+id/view_foto"
android:layout_marginStart="100dp"
app:loadFotoDosen="@{dosen.foto}"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/view_id"
android:layout_marginStart="150dp"
android:layout_marginTop="20dp"
android:text="@={dosen.id}"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/view_nama"
android:layout_marginStart="150dp"
android:textAlignment="center"
android:text="@={dosen.nama}"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/view_pelajaran"
android:layout_marginStart="150dp"
android:textSize="15sp"
android:textAlignment="center"
android:text="@={dosen.pelajaran}"/>
</LinearLayout>
</layout>
如果需要更多详细信息,请随时询问。谢谢。
您需要在对话框构建器上调用setView(detailLayoutBinding.getRoot())
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.