連載
» 2011年06月20日 10時46分 公開

Android技術者認定試験「ACE」ドリル(2):Androidのユーザーインタフェース【前編】 〜アプリ開発の第一歩〜 (2/2)

[奥 崇(elan),@IT MONOist]
前のページへ 1|2       

解答

演習1:答え(1)

 演習1は、Androidのアプリケーションフレームワークが用意しているメニューの種類の理解です。アプリケーションフレームワークに用意されているものは、「オプションメニュー」と「コンテキストメニュー」の2つとなります。よって正解は(1)となります。

 オプションメニューとは、Android端末の[menu]ボタンをクリックしたときに、表示されるメニューのことです。通常の設計では現在表示中の画面(これを“Activity”と呼びます)やアプリケーション全体に対する機能の呼び出しのために使われることが通常です。


オプションメニューの例 図1 オプションメニューの例

 なお、Android端末の多くは[menu]ボタンをハードウェアキーとして保持しています。まれにハードウェアキーとして[menu]ボタンがない端末も存在しますが、通常、それらもソフトウェアキーとして保持しています。よって、“ユーザーが[menu]ボタンをクリックできること”を前提として、アプリケーションを作成して問題ありません。

 一方のコンテキストメニューは、選択部分に対する操作を行うためのメニューになります。例えるなら、Windows PCにおける「右クリック」に該当します。なお、Androidでは通常、PCのように右クリックを行うことはできませんので、操作対象の該当部分を“長押し”することによって、コンテキストメニューを表示させます。

コンテキストメニューの例 図2 コンテキストメニューの例

演習2:答え(3)

 演習2の問題文に「Activity」クラスという、新しい言葉が登場しています。Activityクラスについては以降の回で詳しく取り上げますが、簡単にいいますと“画面のJavaクラス”となります。

 このActivityクラスには、はじめから目的のメニューを選択した際に起動するメソッドが用意されています。つまり、用意したメニューが押された際に起動するロジックを、そのメソッドに記載(オーバーライド)すればよいのです。では、そのメソッドは何かというと、「onOptionsItemSelected」です。よって正解は(3)となります。

 ちなみに(1)の「onCreateOptionsMenu」は、[menu]ボタンがクリックされたときに呼ばれるメソッドです。オプションメニューを作成する際は、このメソッドをオーバーライドしてロジックを記載すればよいのです。つまり、onCreateOptionsMenuでどのようなメニューを表示させるのかを定義することになります。

 (4)の「onTouch」は、“View(UIのパーツ:Buttonなど)”が持つメソッドとなります。名前から想像が付きますが、そのViewがタッチされたときに呼び出されるメソッドとなります。Viewの詳細については、以降の回で取り上げます。

 なお、(2)の「onMenuSelected」というメソッドは、Androidのアプリケーションフレームワークには存在しません。

演習3:答え(2)

 コンテキストメニューに関しても、そのメニューの中からある要素が選択されたときに起動するメソッドがActivityに用意されています。そのメソッドは「onContextItemSelected」です。よって正解は(2)となります。こちらも演習2のonOptionsItemSelectedと同じく、オーバーライドしてロジックを記載します。

 ちなみに(4)の「onCreateContextMenu」メソッドは、コンテキストメニューが生成されるときに起動されます。よって、演習2の解説にあるonCreateOptionsMenuと同様に、コンテキストメニューを作成する実装を記載することになります。

 (1)のonTouchメソッドは演習2の解説と同様です。また、(3)の「onContexMenuSelected」というメソッドは、Androidのアプリケーションフレームワークには存在しません。

演習4:答え(4)

 (A)〜(D)の4つのダイアログの“全て”をAndroidのアプリケーションフレームワークは提供しています(それ以外のダイアログの提供もありません)。よって正解は(4)となります。

 (A)の「AlertDialog」は、タイトル、テキスト、アイコンおよびボタンを別のウィンドウとして表示されるダイアログです。Webブラウザでいうところのポップアップに当たります。AlertDialogは機能としても基本となるものですが、実際の実装でも他の3つのダイアログの基本となっています。なぜなら、AlertDialogにウィジェットを配置して作ったものが、他の3つのダイアログだからです。まずは、AlertDialogをしっかりと理解しておきましょう。

AlertDialogの例 図3 AlertDialogの例

 (B)の「ProgressDialog」は通常、時間のかかる処理を行うときに利用します。時間のかかる処理を行っている際に、ユーザーに進ちょく状況を伝えるのに利用できます。それによって、ユーザーに動作していることを伝えたり、不要な動作(画面を押すなど)をさせないなどの効果があります。

ProgressDialogの例 図4 ProgressDialogの例

 (C)DatePickerDialog」と(D)TimePickerDialog」は、その名の通り、日付と日時を設定するためのダイアログです。現実的に使われるケースは非常に限られるかと思いますが、こういうダイアログがあるということだけでも、まずは知識として押さえておきましょう。

DatePickerDialogの例TimePickerDialogの例 図5(左) DatePickerDialogの例/図6(右) TimePickerDialogの例



 第2回の内容はいかがでしたでしょうか。本連載が対象とする「ACE(OESF Authorized Certification Engineer for Android)」のアプリケーション・ベーシックでは、細かいコーディングレベルよりは一般的な知識を確認する問題が多いので、今回もできるだけ初学者でも分かりやすくAndroidを学べるように心掛けました。

関連リンク:
Android技術者認定試験制度

 ただ、そうはいっても、ACEでは少なからずJavaのコーディング能力があることを前提とした問題も出題されます。よって、ベーシックとはいえ、今回取り上げたようなレベルのコードの説明・解説は今後も盛り込んでいこうと思います。

 冒頭で予告した通り、次回も引き続きAndroidのUIを取り上げます。UIで最重要項目となる「イベント処理」と「ビュー」にフォーカスし、演習と解説を行います。お楽しみに! (次回に続く)

ACEアプリベーシック試験対応イーラーニング(サンプルIDプレゼント中)



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.