У меня была проблема с симуляцией, даже при переключении вкладок клавиатура автоматически появлялась и оставалась включенной, с Android 3.2.1 на планшете.Используйте следующий метод:
public void setEditTextFocus(EditText searchEditText, boolean isFocused)
{
searchEditText.setCursorVisible(isFocused);
searchEditText.setFocusable(isFocused);
searchEditText.setFocusableInTouchMode(isFocused);
if (isFocused) {
searchEditText.requestFocus();
} else {
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(searchEditText.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS );
}
}
В onCreate () и onPause () действия для каждого EditText:
setEditTextFocus (myEditText, false);
Для каждого EditText OnTouchListener:
myEditText.setOnTouchListener(new EditText.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
setEditTextFocus(myEditText, true);
return false;
}
});
Для каждого EditText
в OnEditorActionListener
:
myEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
.......
setEditTextFocus(myEditText, false);
return false;
}
});
И для каждого EditText
вlayout xml
:
android:imeOptions="actionDone"
android:inputType="numberDecimal|numberSigned" // Or something else
Возможно, возможна дополнительная оптимизация кода.