PopupWindow を使ってみる

By 松田幸一
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

今回は3つの内容を紹介します。

  1. ヒントを表示する
  2. エラーを表示する
  3. ポップアップを自分で作る

1.ヒントを表示する

device1

EditText にグレーの文字が見えると思います。「ヒント」と書いてあります。
ユーザにどのような文字を入力してもらいたいのかというヒントを EditText の中に表示する方法です。

A. xml で記述する

hint

EditText を選択してプロパティの編集をします。 Hint という欄に文字を書けば完了
直接文字を書いてしまうと国際化できなくなるので、文字は string.xml に書きましょう

B. ソースから書く

setHint(“文字”) を使います。 ”文字”の部分はリソースID を指定するのがいいでしょう

2.エラーを表示する

ユーザが入力した文字をチェックした結果、エラーがある場合はポップアップで表示する、という使い方になると思います。

device2

OKボタンを押したら、エラーのポップアップを表示するようにしました。

setError(“文字”) を使います。”文字” は CharSequence で指定しますので リソースは使えません。
getString(resId) を使って文字を取得するのがいいのではないでしょうか

“文字” に null を入れるとエラーポップアップは消えます。

3.ポップアップを自分で作る

device3

上図では OKボタンを押したときに EditText に入力された文字をポップアップ表示しているだけです。
このポップアップのデザインは layout.xml で作成すると簡単にデザインができそうです。

PopupWindw を作成します。

最初にやっているのは ポップアップに表示するビューを作成しています。
作成したものをポップアップに設定して完了

OKボタンが押されたらポップアップの表示を切り替えるようにしました。

showAsDropDown で EditTextの下にドロップダウンするように設定しました。
表示する位置は EditText の下になります。0,0 というのはオフセットです。少し右にずらしたいとかがあれば記述します。
dismiss で非表示にします。

関連する投稿