ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

アプリのアップデート

EnglishWordSearchを起動時にキーボードが表示されるように修正した。

普通のActivityは起動時にEditTextにフォーカスがあればキーボードが表示される気がするが、
透過にしたりandroid:backgroundで背景の画像を変えたりしたせいなのか表示されなかった。

onResumeのタイミングで、

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

EditText editText = (EditText)findViewById(R.id.edittext);
InputMethodManager inputMethodManager =
        (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
inputMethodManager.showSoftInput(editText, 0);

を試したがダメで、Handlerを使って100msのディレイを入れたら表示されるようになった。

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
        InputMethodManager inputMethodManager =
                    (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.showSoftInput(mSearchWordInput, 0);
    }
}, 100);

何で??