DataBinding初学者的入门
一:如何使用
1:gradle配置
在android中添加: dataBinding { enabled = true }
2:在xml布局文件中添加layout标签
<layout> // 原来的layout </layout>
3:在Activity中绑定布局,获取binding实例
通过DataBindingUtil.setContentView获取binding实例。
binding默认生成规则:xml通过文件名生成,使用下划线分割大小写。
比如activity_.xml,则会生成
,item_search_hotel则会生成ItemSearchHotelBinding。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
}
4:在xml中声明变量
data标签中创建变量,variable表示声明的变量,其中,name表示变量名,type表示变量类型。
<layout>
<data>
<variable
name="bean"
type="com.demo.client.DataBindingBean"/>
</data>
//原来的layout
</layout>
5.xml中使用变量
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="@{bean.text}" android:textColor="@color/color_7" android:textSize="@dimen/xiaomiMyTextSize1" />
6.在Activity中创建数据绑定类和设置变量值(在第3点的基础上)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
DataBindingBean
dBinding = new DataBinding();
dBinding
.setText("hahahaha");
bingding.setBean(dBinding
);
}
1.在Activity中创建内部类
public class Eventable{
public void onClick(View view) {
//处理的点击事件
Toast.makeText(MainActivity.this,"111111111",Toast.LENGTH_SHORT).show();
}
//文字改变的事件监听
public void onTextChanged(CharSequence s,int start,int before,int c){
elements.setText(s.toString());
binding.setBean(elements);
}
}
2:在布局xml中<data>标签里
<variable
name="present"
type="com.ampm.databding.MainActivity.Eventable"/>
3:在需要处理事件的view里
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
//文字改变的事件
android:onTextChanged="@{present.onTextChanged}"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.text}"
//文字点击的事件
android:onClick="@{present.onClick}"/>