EditTextでパスワード

ちょっとはまったのでメモ。
自力でごりごりコードを書いてパスワードを入力させるEditTextを作成するとき、ポイントは2点。


1.文字を*で置換する事
2.半角だけ受け付けること、というかIMEの全角モードを切る事


1.は比較的すぐ分かりました。

EditText ed = new EditText(this);

みたいにやったとき、

ed.setTransformationMethod(new PasswordTransformationMethod());

ってやれば、入力した文字が*になります。
ここまではよろしい。


問題は2.です。

ed.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

ってやれば良さそうな感じなんだけど、ダメ、全然ダメ。
試行錯誤の末、

ed.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);

ってやったら、望みの動作になった。
これが正しい方法かと言われると違うような気がするけど、暫定的にこれでいきます。
OpenWnn Plusだけでしか検証してないけど、OpenWnn系なら他のも大丈夫じゃないかな。
もう知らん。