双方向Bindingが可能なAndroid Binding v0.45を使ってみた

前置き
Android Bindingが0.45にバージョンアップしていたので試してみたところ、何と双方向Bindingに対応しているではないですか!…とTwitterにつぶやいたら@nakajiに「blogに書け!」と言われたので、纏めてみようと思います。
はじめに
Android Bindingって何?ですが、一言で言うと「ViewとModel層を祖結合にしてくれるライブラリ」ってところです。これを使うとどう素敵になるの?という前置きは、@nakajiがコチラに書かれていますのでご参照ください。@nakajiの記事にもある通り、昔はView–>Modelへの片方向Bindingのみがサポートされていましたが、v0.45ではView<–>Modelの双方向Bindingが実現出来ていました。スバ、ラッシィ。
事前準備

Androidの開発環境(eclipse+Android SDK)を整えておく
Android Bindingのサイトから android-binding-0.45-update.jar をダウンロードしておく

開発手順

Androidプロジェクトを作成します。AndroidBindingSampleと名付けました。

事前にダウンロードしておいた android-binding-0.45-update.jar をプロジェクトの外部ライブラリとして参照追加します。プロジェクトの「Property」ダイアログを開き「Java Build Path」を選択し「Add External JARs…」ボタンを押下します。

android-binding-0.45-update.jar を選択します。

プロジェクトに参照が追加されました。

次に画面を作り…たいのですが、その準備として、画面に表示する文字情報をリソース(string.xml)に定義します。

<!–?xml version="1.0" encoding="utf-8"?–>
 
Android Binding
Enter your Height
Enter your Weight
Calc BMI

画面を作りましょう。…とその前に何のアプリケーションを作るかを決めていませんでした。@nakajiの記事と比較しやすいように、入力された身長と体重からBMI値を計算し表示するアプリケーションにします。画面に身長(EditText)、体重(EditText)、計算ボタン(Button)、BMI計算結果(TextView)を貼り付けます。貼り付けついでに、EditText:hintプロパティとButton:textプロパティに、string.xmlで定義した文字列を設定しておきます。

layout.xmlの内容はこんな感じです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:binding="http://www.gueei.com/android-binding/"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
[...]

Tagged