2010年12月18日土曜日

Android setSoftInputMode()をエミュレータで試すときは hw.keyboard を no にしましょう。

以前のエントリで、起動時に自動でソフトキーボードを出したり出さなかったりする方法を書きましたが、これをエミュレータで検証する場合注意が必要です。

Android 自動でソフトキーボードが出るのを防ぐ

ハードキーボードが出ている状態では、

this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

という設定をしてもソフトキーボードは出ません。

#ハードキーボードが出てるんだからそりゃそうだ。

で、なにが注意点かというと、デフォルトでAVDを作成するとハードキーボードありのエミュレータになるということです。

つまり、なにも設定しないで、デフォルトでAVD作成して上記が書かれたアプリを実行すると、あれれ?ってなってしまうのです。

もちろん、ハードキーボード無しのAVDを作成して実行すればちゃんとソフトキーボードがでます。

では、ハードキーボード無しのAVDを作る方法です。

 1. Android SDK and AVD Manager を開く
 2. Virtual devices で New... をクリック
 3. Hardware: の New... をクリックし Keyboard support 追加し Value を no に変更
 4. その他を設定
 5. Create AVD をクリック



これで、ハードキーボード無しのAVDが作成されました!
Details... で hw.keyboard: no が表示されていればOKです。



 
 

0 件のコメント:

コメントを投稿