次のコードを使用して、フォーカスが変更されたときに編集ボックスのキーボードを表示しています。
no1.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
if(keyCode == 66) {
no2.requestFocus();
}
}
return false;
}
});
no2.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
if(keyCode == 66) {
//Log.e("I am inside no2","no2");
no3.requestFocus();
return true;
}
}
return false;
}
});
no2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
Log.e("In","Innnnnn");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(no2, InputMethodManager.SHOW_IMPLICIT);
}
}
});
ただし、キーボードは表示されません。ログステートメントが印刷されています。これは、focusChanged メソッドに入っていることを意味します。私が間違っていることは何ですか?