トースト
トーストを使うと、アプリケーションの状態が変化した事をユーザに通知するためのポップアップWindowに、メッセージを表示させる事ができる。
トーストは、ウィンドウを持たないコンポーネントでも表示させる事ができるので、 バックグランドで何か処理を行った後の状態を、一時的にユーザに通知するのに適している。
トーストは表示した後、短い時間の後、直ぐに消えてしまう。
また、表示だけで、データの入力等の操作をおこなう事はできない。
このような目的には、トーストとは別のNotificationを使う。
トーストの表示
まず、トーストを表示させる簡単なサンプルを以下に示す。
トーストプログラム1(ToastSample1.java)
このプログラムを実行して、「トーストを表示」ボタンを押すと、 以下の図のような「Hello toast!」というメッセージが、短い時間であるが表示される。
makeTextメソッドにより、Toastクラスのインスタンスを取得する。
コンストラクタを使ってToastクラスのインスタンスを作成する事もできるが、後で述べるカスタムトーストビューを使わない場合は、 makeTextメソッドによりインスタンスを取得する。
makeTextメソッドの第1引数には通常、アプリケーションかアクティビティのコンテキストを指定する。
第2引数には、表示する文字列を指定する。
この文字列には文字列リソースのIDを指定する事もできる。
第3引数には、表示する時間の長さを示す定数を指定する。
上記プログラムの24行目のduration変数の値を、 以下のようにToast.LENGTH_LONGに変更すると、 メッセージを表示する時間がごくわずかではあるが長くなる。
指定できる変数の値はToast.LENGTH_SHORTとToast.LENGTH_LONGの2種類だけである。
また、makeTextメソッドはToastクラスのインスタンスを返すので、プログラムの26行目と27行目をまとめて1行で記述する事もできる。
表示位置の変更
setGravityメソッドを使用すると、トーストの表示位置を変更する事ができる。
以下のコードを使用すると、トーストは画面左上の位置に表示される。
setGravityメソッドの第1引数には、 Gravityクラスに定義されている表示位置を指す定数を指定する。
第2引数にはx方向のオフセット値を、第3引数にはy方向のオフセット値を指定する。
カスタムトーストビューの表示
独自のカスタマイズしたビューを、トーストに表示させる事ができる。
トーストに独自のViewオブジェクトを表示させるには、コンスタラクタでToastオブジェクトを生成して、 引数に表示したいViewオブジェクトを指定して、setViewメソッドを使う。
ここでは、レイアウト用のxmlファイルを用意して、インフレータを使ってxmlレイアウトファイルよりViewオブジェクトを取得して、 そのViewオブジェクトをトーストで表示してみる。
インフレータについては、「カスタムダイアログを表示」 を参照。
以下にそのコードの例を示す。
xmlレイアウトファイル(toast_layout.xml)
トーストプログラム2(ToastSample2.java)
このプログラムを実行して、「トーストを表示」ボタンを押すと、下図のようなトーストが表示される。
参考URL
- Android Developers
- 開発ガイド
- リファレンス