Androidでコントロールを並べて

今日は実験でAndroidの開発の勉強をしてた。

Androidの開発は初めてだが、わりにやりやすいなという印象だった。


画面の設計はコントロールを配置すればできるようになっている。

垂直にコントロールを並べるコントロールや垂直にコントロールを並べるコントロールもあるので、

このへん使うとわりに簡単にきれいな配置が出来る。

コントロールの中で表示に使う文字列はリソースに登録した中から取りだして使うのが基本のよう。

リソースを置き換えれば多言語対応できるな。

それを最初から念頭に置いて設計させるようになってるのは面白い。


コントロールを配置したら今度はイベントを割りあてる必要がある。

イベントの割り当て方法だが、どうもListenerクラスをいちいち作らないといけないらしい。

Eclipseの機能を使うとそれほど手間をかけずにクラスを生成できるようだし、匿名クラスという手もあるらしい。

Listenerクラスを作って、それをonCreateメソッドの中でコントロールのイベントに登録することにより割り当てを行う。

Button btn1= (Button) findViewById(id.btn1);
btn1.setOnClickListener(new Btn1ClickListener());

.NETではイベントにデリゲートを登録することによりこのあたりのことを実現している。

やってることとしては.NETの方がシンプルですね。

あとVisual Studioではイベントの割り当てもGUIの操作でできてしまうから、いちいちonCreateメソッドをいじるのはめんどくさい。


もう1つめんどくさいなと思ったのが、イベントが発生したらそれで他のコントロールに作用を及ぼすときの書き方だな。

いくつか方法があるそうだが、紹介された方法はListenerクラスのコンストラクタから他のコントロールへの参照を渡すという方法だった。

findViewByIdメソッドでコントロールの参照を取り出すという作業がいるので、これはonCreateで全部やってしまうという考えだろう。

なんか納得がいかないが、これ以外にいい方法を知らないのでこれでやってる。


まぁともかくこんな具合にAndroid開発はできるようである。

JavaだけどC#と似てるのでそれほど違和感なく開発できた。うん、本当にこの2つの言語は似てるわ。

あとセンサ類の使い方とかも勉強しないといけないな。その辺が充実しているのがAndroidの売りだし。