android - 如何使用数据绑定(bind)库将自定义对象绑定(bind)到微调器布局?

标签 android android-layout android-spinner android-databinding

我希望通过 android 数据绑定(bind)库将我的对象绑定(bind)到微调器行布局。 Post 1Post 2没有解释我如何使用数据绑定(bind)以及如何绑定(bind)数据对象的多个字段(不仅仅是一个字符串)。

我的数据对象看起来像:

class Data{
    public final String imageUri;
    public final String title;
    public final int totalCount;
}

我希望的布局看起来像:

<!-- horisontal orientation -->
<LinearLayout>
    <!-- Icon -->
    <ImageView/>

    <!-- Title -->
    <TextView/>

    <!-- TotalCount -->
    <TextView/>
</LinearLayout>

我不知道它是如何绑定(bind)的...

最佳答案

您必须将整个布局包裹在 layout 标签中才能使用数据绑定(bind)。这样您就可以将模型分配给您的 View 所以这应该是您的布局。

<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 - 如何使用数据绑定(bind)库将自定义对象绑定(bind)到微调器布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41358659/

相关文章:

android - 更改微调器下拉列表的位置

android - 如何在android中的 View 上方添加阴影

android - Spinner onItemSelected 项目已被选中

java - Android API 级别 23 中的 ISO 8601 问题

android - 尽量减少按下后退键时的 Activity

android - 如何通过 bundle 发送对象

java - Android 多个微调器不同的 ID

android - 无法解析 : com. google.code.gson :gson. 2.2.2

Android UI 设计模式 - 选项菜单

android - 如何检查两个微调器的状况?