RoboBinding简介
RoboBinding是一款基于Android的数据绑定组件,它可以帮助你编写可读性强、容易测试以及性能优越的Android UI应用。RoboBinding有以下几个特点:
- 为了精简框架,RoboBinding移除了大量不必要的代码,比如addXXListener(),findViewById()等。
- 可以将难以测试的Android代码转换为普通的JUnit测试。
- 提供对象类型Cursor来替换 - 关系类型Cursor,因为我们已经习惯于操作对象 。
- 可以很容易的为任何自定义组件,第三方组件或Android widget编写属性绑定实现,简化代码,使项目易于维护。
下面我们通过一个小例子来学习RoboBinding的使用方法。
RoboBinding使用方法
布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:bind="http://robobinding.org/android"> <TextView bind:text="{hello}" /> ... <Button android:text="Say Hello" bind:onClick="sayHello"/> </LinearLayout>
presentation models:
@org.robobinding.annotation.PresentationModel
public class PresentationModel implements HasPresentationModelChangeSupport {
private String name;
public String getHello() {
return name + ": hello Android MVVM(Presentation Model)!";
}
...
public void sayHello() {
firePropertyChange("hello");
}
}
Activity代码
Activities将应用布局和展现层数据绑定在一起,MainActivity.java的代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
PresentationModel presentationModel = new PresentationModel();
View rootView = Binders.inflateAndBindWithoutPreInitializingViews(this, R.layout.activity_main, presentationModel);
setContentView(rootView);
}
}
更多关于RoboBinding的使用,可以访问其在Github上的主页。
转自:http://www.codeceo.com/article/android-robobinding.html