如何使用数据绑定库将自定义对象绑定到微调器布局?
How to bind custom object to spinner layout using databinding library?
我希望通过 android 数据绑定库将我的对象绑定到微调器行布局。 Post 1 and Post 2 没有解释如何使用数据绑定以及如何绑定数据对象的多个字段(不仅仅是一个字符串)。
我的数据对象如下所示:
class Data{
public final String imageUri;
public final String title;
public final int totalCount;
}
我希望的布局看起来像:
<!-- horisontal orientation -->
<LinearLayout>
<!-- Icon -->
<ImageView/>
<!-- Title -->
<TextView/>
<!-- TotalCount -->
<TextView/>
</LinearLayout>
以及它是如何绑定的我不知道...
您必须将整个布局包裹在 layout 标记中才能使用数据 Binding.This 方式,您可以将模型分配给视图所以这应该是您的布局。
<layout>
<data>
<variable name="data" type="your.packagename.Data">
</variable>
</data>
<!-- horisontal orientation -->
<LinearLayout>
<!-- Icon -->
<ImageView
android:src="@{data.imageUri}"/>
<!-- Title -->
<TextView
android:text="@{data.title}"/>
<!-- TotalCount -->
<TextView
android:text="@{data.totalCount}"/>
</LinearLayout>
</layout>
假设您正在使用 Activity 来显示 Spinner 并且您的布局名称是 custom_spinner.xml 。然后这里是如何将数据设置为布局。设置 Spinner Adapter 后,您需要做的是
Data data; // Data object
CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner);
binding.setData(data);
这应该是您的自定义适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner);
binding.setData(dataList.get(position)); // you should pass dataList as an argument in Custom Adapter constructor
}
我希望通过 android 数据绑定库将我的对象绑定到微调器行布局。 Post 1 and Post 2 没有解释如何使用数据绑定以及如何绑定数据对象的多个字段(不仅仅是一个字符串)。
我的数据对象如下所示:
class Data{
public final String imageUri;
public final String title;
public final int totalCount;
}
我希望的布局看起来像:
<!-- horisontal orientation -->
<LinearLayout>
<!-- Icon -->
<ImageView/>
<!-- Title -->
<TextView/>
<!-- TotalCount -->
<TextView/>
</LinearLayout>
以及它是如何绑定的我不知道...
您必须将整个布局包裹在 layout 标记中才能使用数据 Binding.This 方式,您可以将模型分配给视图所以这应该是您的布局。
<layout>
<data>
<variable name="data" type="your.packagename.Data">
</variable>
</data>
<!-- horisontal orientation -->
<LinearLayout>
<!-- Icon -->
<ImageView
android:src="@{data.imageUri}"/>
<!-- Title -->
<TextView
android:text="@{data.title}"/>
<!-- TotalCount -->
<TextView
android:text="@{data.totalCount}"/>
</LinearLayout>
</layout>
假设您正在使用 Activity 来显示 Spinner 并且您的布局名称是 custom_spinner.xml 。然后这里是如何将数据设置为布局。设置 Spinner Adapter 后,您需要做的是
Data data; // Data object
CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner);
binding.setData(data);
这应该是您的自定义适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner);
binding.setData(dataList.get(position)); // you should pass dataList as an argument in Custom Adapter constructor
}