Android上でデータバインディング

2015年のデータBinbingフレームワークは、GoogleのI / Oカンファレンスではまず、それが熱いAndroidの開発者であったが、提案されているが、いくつかは、実際のプロジェクトで使用されます。この紙簡単にはデータバインディングフレームワークとその特性の簡単な使用を記載しています。

Androidの公式ウェブサイトでは、データはサポートライブラリ、アンドロイド2.1(APIレベル7+)のサポートの結合以降のサポートを提供してきました。従来のAndroidプロジェクトの設定、データバインディングのサポート、次のようにビルド環境を設定する必要性との比較:

  1. 唯一のAndroidをサポートしている結合のAndroid Studioの1.3以上のデータ
  2. AndroidのSDKマネージャに最新のAndroidサポートライブラリをダウンロード
  3. 設定のdataBindingサポートスイッチアプリはbuild.gradleに動作します
  4. build.gradleでのdataBinding依存ライブラリを追加します。

次のようにbuild.gradleの構成は次のとおりです。

android {
    ....
    // dataBindng开关
    dataBinding {
        enabled = true
    }
}

dependencies {
    ....
    // 添加dataBinding支持依赖库
    compile 'com.android.support:appcompat-v7:23.3.0'
}

こんにちは、データバインディング

データバインディングのレイアウト

一般的なレイアウトのレイアウトファイルをバインディングすることは、同じレベルのデータは、通常のレイアウトのレイアウトファイルであり、以下では、データノードデータは、ルートノードのレイアウトのレイアウトであり、異なっています。次のようにmain_activity.xmlコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <data>
        <variable name="user" type="com.jimmy.demo.databinding.simple.model.User"/>
    </data>

    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin"
            tools:context="com.jimmy.demo.databinding.simple.MainActivity">

        <TextView
                android:id="@+id/tv_name"
                android:text="@{user.na 大专栏  Data Binding on Androidme}"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        <TextView
                android:id="@+id/tv_age"
                android:text="@{String.valueOf(user.age)}"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/tv_name"
                android:layout_marginLeft="10dp"/>
    </RelativeLayout>
</layout>

可変データをユーザに確認し、type属性はcom.jimmy.demo.databinding.simple.model.Userユーザに対応するJavaクラスを指定します。ユーザーは、通常のJavaエンティティクラスであります:

public class User {

    public String name;
    public int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

}

断言ユーザー変数は、あなたが使用することができます@ {}構文の表現の仕方をレイアウトした後、ユーザー属性を使用して、レイアウトファイル前述したようにTextViewには、Androidの属性:テキストを=「@ {user.name}を」、原因user.ageがありますint型、文字列、Stringクラスをインポートする必要はありません変換するのに必要な時間の使用が使用されているが、レイアウトファイルで直接使用することができます。

ここでは、レイアウトファイルの属性値が編集個々のビューに対応するコードを見つける必要のないダイナミックな結合であり、後にあなたが、結合の特性に関するデータを見ることができます。

データバインディング

完全なデータバインディングレイアウトファイルは、Bindingクラスで指定されたレイアウトファイル名にクラス属性データノードに追加することができる対応するデフォルトクラス(例えば上記MainActivityBinding.classを生成main_activity.xml)を生成します。

<data class="com.jimmy.demo.MyBinding">
    ....
</data>

アクティビティまたはフラグメントDataBindingUtilは戻りオブジェクトは、その後バインドユーザエンティティデータをMainActivityBindingされたクラスオブジェクトを、結合、レイアウトによって提供されます。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
    user = new User("Amanada", 25);
    binding.setUser(user);
}

このように、Androidのデータバインディングの簡単なデモが完了すると、あなたはそれぞれ、2のTextViewアマンダと25の値を見ることができるデモを実行します。

おすすめ

転載: www.cnblogs.com/lijianming180/p/12026838.html