Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。最後に参考資料トーストAndroidには、トースト(Toast)と呼ばれる、画面にメッセージを表示する機能があります。トーストは、フェードインして表示され、一定時間経過後に自動的にフェードアウトします。トーストの表示トーストを表示するには、android.widgetパッケージのToastクラスを使用します。通常、Toastクラスで定義されたmakeText()というスタティックメソッドを利用して、Toastクラスのオブジェクトを生成します。makeText()メソッドは、アプリケーションまたはアクティビティのContextオブジェクト、表示メッセージ、持続期間、の3つのパラメータを受けつけます。その後、実際の表示はshow()メソッドで行います。引数のContextとは、アプリケーションまたはアクティビティの状態を保持しているオブジェクトで、ウィジットの引数としてよく使われるものです。トースト表示の持続期間は、Toastクラスで定義されている、Toast.LENGTH_LONGまたはToast.LENGTH_SHORTという定数を指定します。Toast.LENGTH_LONG).show();なお、makeText()、show()は、メソッドチェーンを利用して1行にすることもできます。このサンプルを実行すると、以下のような表示になります。トースト表示画面ダイアログトーストは一方的に通知するだけですが、メッセージの表示だけでなく、何らかの入力が必要な場合に用いるのが、ダイアログです。通常ダイアログは、自動的に消えることなく、ユーザのアクションがあるまで表示され続けます。AlertDialgAndroidでは、いくつかのダイアログが標準で提供されています。基本となっているのは、android.appパッケージのAlertDialgというクラスです。AlertDialgは、その名のとおり、警告など何かしらメッセージを表示するときに便利に使えるものです。メッセージを表示するだけでなく、さまざまな表示方法に対応しており、高機能なコンポーネントです。今回は、AlertDialgクラスのかんたんな使い方を紹介しましょう。通常、AlertDialgを生成するには、AlertDialgクラスを直接用いるのではなく、AlertDialog.Builderというオブジェクトを利用します。AlertDialog.Builderは、引数にContextオブジェクト指定して生成し、その後、このオブジェクトのメソッドを使って、タイトルや表示するメッセージの設定、ボタンの設定を行います。次のサンプルコードは、OKボタンを持つダイアログです。ダイアログの生成と表示show()メソッドで、ダイアログの生成と表示を行います。このコードを実行すると、次の表示になります。AlertDialg表示画面AlertDialogクラスでは、ダイアログを閉じるボタンとして、PositiveButton、NeutralButton、NegativeButtonの3つが定義されており、それぞれに対応した設定メソッドがあります。基本的にはボタンが1つならPositiveButton、2つならPositiveButton、NegativeButtonを用います。ボタンのクリックリスナーsetPositiveButton()メソッドの引数は、表示文字列と、ボタンのクリックリスナーです。リスナーを登録すると、ボタンのクリック時に実行する処理を記述することができます。ここでのリスナーは、DialogInterface.OnClickListenerインターフェイスとなります。さきほどのビューでのボタンで用いた、android.view.View.OnClickListenerインターフェイスとは異なりますので注意してください。ボタンをクリックしたときに、トーストを表示するなら、次のようになるでしょう。}});onClick()メソッドの最初の引数には、クリックが発生したダイアログのオブジェクト、第2引数には、クリックが発生したボタンの種類が渡されます。ボタンの種類は、android.content.DialogInterfaceインターファイスで定義された、BUTTON_NEGATIVE、BUTTON_NEUTRAL、BUTTON_POSITIVEのいずれかの定数になります。Toast.makeTextの第1引数では、HelloAndroidを指定しています。これは、単にthisだけでは、無名クラスのオブジェクトを指定したことになってしまうからです。最後に今回は、ビューを用いたAndroid画面処理とイベント処理、トースト、ダイアログの表示といったユーザーインターフェイスの基本処理を解説しました。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Technologies。執筆コミュニティ「WINGSプロジェクト」代表。