2011年8月6日土曜日

androidアプリ開発日記(2011/08/05)

アプリの使用上,パスワード入力をするための機構が必要になった.
そこで,入力した文字列が見えないようなテキストボックスを定義することにした.
まずは入力した文字列が「・」で表示されるように以下のようにEditTextクラスを定義.
EditText text = new EditText(this);
text.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | text.getInputType());
ここでポイントとなるのが,text.getInputType()を足しているところ.
これによって,パスワード入力時に文字列補間機能が働いてしまい,パスワードが駄々漏れになることを防ぐことができる.

また,このままだとenterキーが入力されると改行文字がパスワードの文字列として追加されてしまう.
それはマズいので次にそこを直す.こんな感じ.
EditText text = new EditText(this);
text.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | text.getInputType());
text.setSingleLine(true);

やった!これでできた...と思ったら...
なんと入力文字列が「・」で表示されずにplane textとして表示されているではないかΣ(○Д○)
この問題はこうすると直る...みたい(結果論).
EditText text = new EditText(this);
text.setSingleLine(true);
text.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | text.getInputType());

順番入れ替えるだけで直るとか少し怖いけど,まぁちゃんと動くようなので良しとしよう.

ラベル:

0 件のコメント:

コメントを投稿

登録 コメントの投稿 [Atom]

<< ホーム