SQLの窓 イラストAC フリー素材

2012年09月23日

android-binding で、BindingActivityV30 を使う方法



赤い枠の中が重要ですが、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の最新記事】
posted by at 2012-09-23 01:30 | Android | このブログの読者になる | 更新情報をチェックする