Я добавляю новое представление программно в al oop в framgemt.
PurchaseItem purchaseItem = new PurchaseItem();
ProductItem purchaseItemView = new ProductItem(getContext(),0,purchaseItem);
binding.purchaseItems.addView(purchaseItemView);
пользовательский класс представления
public class ProductItem extends LinearLayout {
public ProductItem(Context context, Integer idx,PurchaseItem pItem) {
super(context);
purchaseItem = pItem;
index = idx;
inflate(context, R.layout.purchase_item, this);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
purchaseItem.setWeight("data "+index); // For testing Purpose : It is not working
binding = PurchaseItemBinding.inflate(inflater);//DataBindingUtil.inflate(inflater,R.layout.purchase_item,this, true);
binding.setPurchaseItem(purchaseItem);
purchaseItem.setQuantity("qty"); // For testing Purpose : It is not working
binding.weight.setText("abc"); // For testing Purpose : It is not working
init(context);
}
}
Макет выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable name="purchaseItem" type="com.testapp.entities.PurchaseItem"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{purchaseItem.weight}"
></TextView>
<EditText
android:id="@+id/weight"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:textAppearanceLarge"
android:textColor="#4689C8"
android:textStyle="bold"
android:text="@={purchaseItem.weight}"
/>
</LinearLayout>
</layout>
Проблема в том, что EditView и TextView становятся пустыми и не связаны с моделью. Я тоже не получаю никакой ошибки. Приложение собирается правильно и установлено правильно.