プロジェクト作成
コンパイラのバージョン設定( 一般 )
android-binding-v30-0.52.jar を参照
( lib に保存して参照します )
Appication クラス作成
android-binding を初期化して使用可能にします。
package com.example.textbinding;
import android.app.Application;
import gueei.binding.Binder;
public class BindTest extends Application {
@Override
public void onCreate() {
super.onCreate();
Binder.init(this);
// BinderV30.init(this); と書くのが最新のようです
}
}
AndroidManifest に Application を登録
画面定義
binding: で記述される部分がバインド用です。これを使用すると、イベント名を記述してその名前に対してイヘント処理を java 側で記述可能になります。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:binding="http://www.gueei.com/android-binding/"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
tools:context=".MainActivity"
binding:text="hello" />
</RelativeLayout>
Activity と バインド用クラス
(MainActivity.java)
package com.example.textbinding;
import gueei.binding.Binder;
import gueei.binding.app.BindingActivity;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.support.v4.app.NavUtils;
public class MainActivity extends BindingActivity {
private TestViewModel viewModel = new TestViewModel();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = Binder.bindView(
this,
Binder.inflateView( this, R.layout.activity_main, null, false ),
viewModel );
setContentView( view );
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
this.setAndBindRootView(R.layout.activity_main, viewModel);
( 20 〜 25 のかわりにこうするのが最新のようです )
※ BindingActivity が重要
(TestViewModel.java)
package com.example.textbinding;
import gueei.binding.observables.StringObservable;
import gueei.binding.pojo.PojoViewModel;
import gueei.binding.pojo.PojoViewModelHelper;
public class TestViewModel implements PojoViewModel {
private PojoViewModelHelper helper = new PojoViewModelHelper();
public final StringObservable hello = new StringObservable("こんにちは");
@Override
public PojoViewModelHelper getHelper() {
return helper;
}
@Override
public void notifyPropertyChanged( String propertyName ) {
helper.notifyPropertyChanged( propertyName );
}
}
関連する記事
android-binding を使用した、固定値、イベント、オプションメニューの構築
posted by
at 2012-09-20 22:24
|
Android
|
|