DataBinding
程序员文章站
2022-06-09 20:18:38
...
- DataBinding是谷歌官方发布的一个框架,它的目的是降低布局和逻辑的耦合性,使代码的逻辑更清晰。它能够很简单的省去findViewById()的步骤,大量减少Activity的代码,数据直接能写在layout文件上,而且它能自动进行空检测,很多地方对象为空不会引起空指针异常。
- 配置
- 修改xml文件
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="com.sdhmw.dtwb2.model.Table_1" />
<import type="com.sdhmw.dtwb2.main.Fragment_Table_1.OnClickListener_Table_1" />
<variable
name="table"
type="Table_1"/>
<variable
name="click"
type="OnClickListener_Table_1" />
</data>
<TextView
android:tag="@string/BG_BH"
android:onClick="@{click.onClick}"
android:text="@{table.BG_BH}"
android:id="@+id/tv_BG_BH"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/table_tv_click"
android:gravity="center"
android:padding="8dp"
android:textSize="15sp" />
private static FragmentTable1Binding binding;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_table_1, container, false);
View rootView = binding.getRoot();
initData();
initView(rootView);
initListener();
return rootView;
}
private void initListener() {
//click
binding.setClick(new OnClickListener_Table_1());
}
点击事件
//view绑定的onclick
public class OnClickListener_Table_1 {
public void onClick(View view) {
绑定Table
//绑定
table = new Table_1();
binding.setTable(table);
无非分两种情况:
一个是页面数据的显示:
当时一开始想使用Table_1里面的tostring解析json,后来就不用了。
table.setSGDWMC(list2.get(i).getSGDWMC());
binding.tvBGBH.setText()
另一个是页面数据的获取:
String BG_BH = binding.tvBGBH.getText().toString();
上一篇: python实现省市热力地图
下一篇: WinRAR内部查看器怎么开启自动换行?