Android 4.4.2でアプリ起動と同時にキーボードを表示させるとiWnn IMEが落ちる。
Android 4.4.2の問題らしい。
対策としてキーボードの表示を一旦抑止し、EditTextにフォーカスを当てた後、遅延してキーボードを表示させる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //最初はキーボードを表示しない(android 4.4.2対応) this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_HIDDEN); setContentView(R.layout.activity_main); editText1.requestFocus(); } // ウィンドウのフォーカス変更イベント(android 4.4.2対応) public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); // EditTextがフォーカスを取得した場合100msec後にキーボード表示 if(hasFocus && editText1 == getCurrentFocus()) { new Handler().postDelayed( showKeyboardDelay , 100); } } // ソフトキーボード表示の遅延実行処理(android 4.4.2対応) private final Runnable showKeyboardDelay = new Runnable() { @Override public void run() { // ソフトキーボードを表示 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText1, 0); } }; |