こうした実装形態は,Javaアプレットや.NET Frameworkを利用してGUIプログラミングをする場合などとほぼ共通しており,考え方として目新しさは感じられない。フレームワークが呼び出すのがメソッドである点や,メソッド名が「on」で始まるのは,Javaよりも米Microsoft Corp.のフレームワークに近い。例えばJavaアプレットの場合,初期化時には「init」メソッドが呼ばれ,描画が必要なときには「paint」メソッドが呼ばれる。Androidでは,「onCreate」などのメソッド名が与えられている。
レイアウトはXMLで記述
Activityが持つUIは,Javaプログラムとしても記述できるが,基本はXMLでレイアウトを記述する(図9)。.NET FrameworkやWebアプリケーションなどと思想が似ている。
UIを構成する画面上の要素は,すべて「View」と呼ぶクラスに属する。Viewクラスの中には,複数のViewを配置できる「ViewGroup」があって,これがViewのレイアウトを決める性質を持つ。例えばViewGroupの一つである「LinearLayout」では,複数のViewを縦または横に一列に並べる。「RelativeLayout」では,画面の中の相対的な位置関係を定義して,比較的高い自由度でViewを配置できる。このほか画素単位で位置を指定する「AbsoluteLayout」や表形式でレイアウトする「TableLayout」などがある。
GUI部品個別のイベントには,Activityのライフサイクル管理と同様にフレームワークが呼び出すメソッドとして実装するものと,そうでないものがある。この点で.NETFrameworkのような統一感はない。例えばキーボード操作のonKeyUpやonKeyDownといったメソッドは用意されているが,マウスのボタンがクリックされたときの処理は「onClickListener」のクラスを定義する形になっている。