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

你可能感兴趣的内容
Android中远程Service浅析 收藏,4227 浏览
0条评论

dexcoder

这家伙太懒了 <( ̄ ﹌  ̄)>
Owner