Google ドライブからダウンロード![]()
バインドの方法としては、BindingActivityV30 + inflateAndBind を使うのが最新なのですが、作者さんの最新のサンプルがまだそれを使って無いのでここでは利用していません。それを利用すると、Android の最新バージョンで ActionBar を使う事を簡単に変更できるようです( メイン画面とメニューと ActionBar を一つの XML で定義します / 動作確認はしました ) プロジェクト作成の基本部分 android-binding を使って Windows C#(XAML) のようなバインド処理の実装 画面定義
<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" binding:text="hello" tools:context=".P1Activity" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" binding:text="button_value" binding:onClick="Button_Click_1"/> </RelativeLayout>
メニュー定義
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:binding="http://www.gueei.com/android-binding/"> <item android:id="@+id/menu_settings" binding:title="bind_menu" android:orderInCategory="100" android:showAsAction="never" binding:onClick="Menu_Click_1"/> </menu>
BindingActivity bindModel.button_value.set("ボタン"); は、クラス内で初期設定するのでは無く、外から設定した例です。また、メイン画面用のオブジェクトをメニューに引き渡して、メニュー処理から本体画面のバインド処理を行えるようにしています。( 別に分ける必要はありませんが、分けたとしたらこんな感じかと思います )
package winofsql.jp; 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 P1Activity extends BindingActivity { private BindModel bindModel = new BindModel(); private BindModelMenu bindModelMenu = new BindModelMenu(bindModel); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bindModel.button_value.set("ボタン"); this.setAndBindRootView(R.layout.activity_p1, bindModel); this.setAndBindOptionsMenu(R.menu.activity_p1, bindModelMenu); } }
メイン画面のバインド用クラス
package winofsql.jp; import android.view.View; import gueei.binding.Command; import gueei.binding.observables.StringObservable; import gueei.binding.pojo.PojoViewModel; import gueei.binding.pojo.PojoViewModelHelper; public class BindModel implements PojoViewModel { private PojoViewModelHelper helper = new PojoViewModelHelper(); public final StringObservable hello = new StringObservable("こんにちは"); public final StringObservable button_value = new StringObservable(); public final Command Button_Click_1 = new Command() { @Override public void Invoke(View arg0, Object... arg1) { hello.set("はじめまして"); } }; @Override public PojoViewModelHelper getHelper() { return helper; } @Override public void notifyPropertyChanged( String propertyName ) { helper.notifyPropertyChanged( propertyName ); } }
メニュー用のバインド用クラス
※ メイン画面用の中に書いて共用してもいいです
package winofsql.jp; import android.view.View; import gueei.binding.Command; import gueei.binding.observables.StringObservable; import gueei.binding.pojo.PojoViewModel; import gueei.binding.pojo.PojoViewModelHelper; public class BindModelMenu implements PojoViewModel { private PojoViewModelHelper helper = new PojoViewModelHelper(); private BindModel bindModel; public final StringObservable bind_menu = new StringObservable("バインドメニュー"); public final Command Menu_Click_1 = new Command() { @Override public void Invoke(View arg0, Object... arg1) { BindModelMenu.this.bindModel.hello.set("メニューから変更"); } }; public BindModelMenu(BindModel bindModel) { this.bindModel = bindModel; } @Override public PojoViewModelHelper getHelper() { return helper; } @Override public void notifyPropertyChanged( String propertyName ) { helper.notifyPropertyChanged( propertyName ); } }
|
【Androidの最新記事】
- デバイスを探す / Find My Device - Google / Android Find
- JavaScript から Android へアクセス
- Monaca と 本当の 『Onsen UI最小限のテンプレート』
- Android 5.1 リリース済み。SDK( android-sdk_r24.0.2-windows.zip ) でまずエミュレータ作って、あとから Eclipse と Android Studio..
- クラウドでアプリを作成してスマホで動作させる『Monaca』を Android エミュレータの 5.1 で動作確認しました
- Android で Post と Get
- 別の ADT(Android) で作成されたワークスペースを最新の ADT で開く場合の操作方法
- Android : ListView Twitter 検索テンプレート
- トラブル : AndroidManifest.xml に XML 宣言があるとエラーになる???
- Twitter API の自分のアプリのトークンを使って投稿するだけの class Android_Twitter
- Android 単純リストビューを google-gson で最速構築
- Android をテストするのにほんの少し楽になるかもしれないクラス
- Android : Google Spreadsheets API version 3.0でGoogleスプレッドシートを参照
- Android 4.2.2(ADT) : class MyDatePicker extends DatePickerDialog
- Android : 日付ダイアログをインナーで使う( 完了ボタンをクリックした場合としない場合の対応 )
- Android(4.2.2) ADT から Post や Get をできるかぎり簡単にするサンプル
- Android ADT : 単純画面遷移
- HashMap の Key と Value をそれぞれソートして、最終的には 配列に変換して テンプレートを使って for ループを簡単に記述する
- ADT Eclipse : sysout テンプレートの変更
- Android(ADT Eclipse) 用 ボタンイベントテンプレート