赤い枠の中が重要ですが、res の下に xml フォルダを作成して以下のように xml レイアウトファイルを作成した下さい
<?xml version="1.0" encoding="utf-8"?> <activity xmlns:binding="http://www.gueei.com/android-binding/"> <rootView binding:dataSource="RootViewViewModel" binding:layoutId="@layout/activity_main"/> <optionsMenu binding:dataSource="OptionsMenuViewModel" binding:menu="@menu/activity_main"/> </activity>
後は、バインド用のクラスを3つ作ってそれぞれを順に作成してバインドさせます。
★ MainActivity.java package com.example.allbind; import gueei.binding.v30.app.BindingActivityV30; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.support.v4.app.NavUtils; public class MainActivity extends BindingActivityV30 { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewModel vm = new ViewModel(); this.inflateAndBind(R.xml.bav30, vm); } } ★ ViewModel.java package com.example.allbind; import gueei.binding.observables.ObjectObservable; import gueei.binding.pojo.PojoViewModel; import gueei.binding.pojo.PojoViewModelHelper; public class ViewModel implements PojoViewModel { private PojoViewModelHelper helper = new PojoViewModelHelper(); public final ObjectObservable RootViewViewModel = new ObjectObservable(new RootViewViewModel()); public final ObjectObservable OptionsMenuViewModel = new ObjectObservable(new OptionsMenuViewModel()); @Override public PojoViewModelHelper getHelper() { return helper; } @Override public void notifyPropertyChanged( String propertyName ) { helper.notifyPropertyChanged( propertyName ); } } ★ RootViewViewModel.java package com.example.allbind; import gueei.binding.observables.StringObservable; import gueei.binding.pojo.PojoViewModel; import gueei.binding.pojo.PojoViewModelHelper; public class RootViewViewModel 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 ); } } ★ OptionsMenuViewModel.java package com.example.allbind; import gueei.binding.observables.StringObservable; import gueei.binding.pojo.PojoViewModel; import gueei.binding.pojo.PojoViewModelHelper; public class OptionsMenuViewModel implements PojoViewModel { private PojoViewModelHelper helper = new PojoViewModelHelper(); public final StringObservable menu_settings = new StringObservable("設定"); @Override public PojoViewModelHelper getHelper() { return helper; } @Override public void notifyPropertyChanged( String propertyName ) { helper.notifyPropertyChanged( propertyName ); } }
▼ プロジェクトの作成の基本は以下から参照して下さい android-binding を使って Windows C#(XAML) のようなバインド処理の実装
|
【Androidの最新記事】
- Android Studio : LiveDoor のお天気情報をリストビューに表示する手順
- Android のメニュー項目を条件が満たされた時のみ利用可能にする / onPrepareOptionsMenu
- Android Studio : LiveDoor のお天気情報をリストビューに表示した後、第二画面で name を変更して第一画面で再表示する手順
- Android の教科書到着しました。
- Android Studio をちょっと古い PC で使うと エミュレータが実行されなかった。
- Android Studio で、Failed to find target with hash string というエラーが出たら、Module の build.gradle を変更します
- Android Studio で Fragment の tools:layout で画面を指定して MainActivity には処理を書かないアプリケーション
- Android の SeekBar を縦方向で使用する設定
- Android 5.1(API 22) と Android 4.4(API 19) でのそれぞれの DatePicker ダイアログの扱い
- Android 5.1(API 22) と Android 4.4(API 19) でのそれぞれの DatePicker コントロールの扱い
- Android Studio でプロジェクトを読み込むと、Error : C:\Users\User\.gradle\caches... と表示されて gradle の処理が出来なくなる場合の対処
- Android Studio 1.4.1 : Android 純正 Data Binding テンプレート
- Android アプリ作成の基礎 : PDF で問題
- Android Chrome の 謎の(?) 241文字仕様 / 241文字以上のコンテンツは文字が大きく表示される
- Android Studio : 行の途中で改行した時のインデント数を 1 にする
- Android Studio : キャラクタセット
- Android Studio : 起動時にプロジェクトを読み込まない設定
- Android Studio の SDK ヘのパスの変更
- armeabi-v7a しか動かない、ちょっと古い PC で、どーしてもエミュレータが起動しなくてやった事( 動いた、万歳 )
- Android 5.1 + Pleiades( Luna ) + ADT Plugin