Android的Databinding-需要使用控件id,listener以及布局有include的场景

欠伸展肢体,吟咏心自愉。这篇文章主要讲述Android的Databinding-需要使用控件id,listener以及布局有include的场景相关的知识,希望能为你提供帮助。
主的布局xml文件:

1 < layout xmlns:android="http://schemas.android.com/apk/res/android" 2xmlns:bind="http://schemas.android.com/apk/res-auto"> 3 4< data> 5 6< import type="com.liangfeizc.databinding.model.User" /> 7< variable 8name="user" 9type="User" /> 10< variable 11name="listener" 12type="com.liangfeizc.databinding.listener.OkListener" /> 13< variable 14name="okText" 15type="String" /> 16< /data> 17 18< LinearLayout 19android:layout_width="match_parent" 20android:layout_height="match_parent" 21android:orientation="vertical"> 22 23< include 24android:id="@+id/layout_input" 25layout="@layout/layout_input" /> 26 27< include 28layout="@layout/user" 29bind:user="@{user}" /> 30 31< include 32layout="@layout/layout_btn_ok" 33bind:okText="@{okText}" 34bind:listener="@{listener}"/> 35< /LinearLayout> 36 < /layout>


本布局一共包含3个include布局,第一个是一个普通的布局,里面没有< data> < /data> , 考虑的就是如何通过id获取控件的引用。binding.layoutInput.etName   binding是绑定的对象,layoutInput和etName就是Id,至于为啥没有了下划线_ , 因为这个id也是自动生成的。
第二个布局,需要传递User这个pojo类,所以要在< data> 中引入,而同时也需要定义一个类别(看上面代码第二行)把user对象进行传递。
第三个布局较为复杂,需要传递listener和text,同样也需要一个类别进行传递。
 
本节参考代码。



【Android的Databinding-需要使用控件id,listener以及布局有include的场景】 

    推荐阅读