トースト


トーストを使うと、アプリケーションの状態が変化した事をユーザに通知するためのポップアップ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

 

ページのトップへ戻る