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上的主页。