株式会社八角研究所 > AndroidでBeans Binding(JSR295)は使えるか?

エンジニア募集中!

独立心旺盛で、新しい技術で新しいWebサービスを作りたいと思っているけれど、ひとりでやることに限界を感じているフリーのエンジニアの方。あなたの期待にこたえられる仲間と環境を、八角研究所なら提供できると思います。社員としてではない関わり方も、あるかもしれません。

2009年07月02日 13:03

AndroidでBeans Binding(JSR295)は使えるか? * * * *

by tunakan

Tags: Androidアプリ作りたい Java Android

ぼーっとAndroidのJavaDocを眺めているとPropertyChangeListenerがあることに気がつきました。ということは、もしかしてBeans Binding(JSR295)も、使えるのかなと思い試してみました。

というわけで、さっそくViewを作って、コードを書こうとしたのですが、

 

Binding

あ、

EditTextにもTextViewにもPropertyChangeListenerを登録できない。。。

いきなり結論がでました。Beans Bindingは使えない。(Viewを作る前に気づくべきです。)

仕方ないので別の方法でお茶をにごすテスト。(addTextChangedListenerでテキストの変更は監視できるようです。)

brush:java; wrap-lines:false

package net.hakkaku.android.binding;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class BindingTest extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		((EditText) findViewById(R.id.edit))
				.addTextChangedListener(new TextWatcher() {
					@Override
					public void afterTextChanged(Editable s) {
					}

					@Override
					public void beforeTextChanged(CharSequence s, int start,
							int count, int after) {
					}

					@Override
					public void onTextChanged(CharSequence s, int start,
							int before, int count) {
						((TextView) findViewById(R.id.text)).setText(s);
					}
				});
	}
}
Binding2

一応、目的の動作はできたけれど・・・

ViewにPropertyChangeListerをセット出来ないのは、ちょっとショックでした。ただ、AndroidのViewは、設定できるプロパティの数も多く、PropertyChangeListenerをサポートしてまうと、頻繁にリスナが呼ばれることになり、パフォーマンス上問題があるのかなとも思いました。

また、バイトコードをコネコネしたりAOPを使えば無理矢理PropertyChangeListerを登録できるかもしれませんが、必要に迫られている訳でもないので、そこまでは試していません。いつか、暇なときにでもやってみたいと思います。

この記事の執筆者

九州男児 tunakan 28歳 入社2年目

内臓が全般的に弱いです。データベースは苦手なのに変なデーターベースに当たることが多い気がします。

この人の会社をみる この人関連のイベントをさがす この人と一緒にはたらく

この日記にコメントする

(メールアドレスは公開されません。メールで返答が欲しい場合などに入力してください)

このエントリへのトラックバックURL

コメント

コメントはありません

トラックバック

トラックバックはありません

メンバー紹介

sugimaru

sugimaru

すぎまるです。22時のシンデレラです。

boy

boy

少年です。 18歳以下(嘘)でも立派に社員です。 よろしくおねがいします。

tunakan

tunakan

内臓が全般的に弱いです。データベースは苦手なのに変なデーターベースに当たることが多い気がします。