#android
#Android
Вопрос:
Я пытаюсь заставить вид EditText потерять фокус, отключить клавиатуру и стать невидимым. Отладка показывает, что код выполняется, а объекты search_view и view ссылаются на один и тот же объект. Однако ни один из вызываемых методов, похоже, не имеет эффекта.
OnKeyListener enter_pressed = new OnKeyListener() {
public boolean onKey(View view, int key_code, KeyEvent event)
{
switch ( key_code ) {
case KeyEvent.KEYCODE_ENTER:
view.clearFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
view.setVisibility(0);
return true;
default:
return false;
}
}
};
Также, как ни странно, код возвращается к регистру по умолчанию, даже после инструкции return . Добавление разрыва после возврата выдает предупреждение в Eclipse о недоступном коде, чего я и ожидал.
Ответ №1:
view.setVisibility (0) — это то же самое, что view.setVisibility (Просмотр.ВИЗУАЛИЗАЦИЯ) то, что вы хотите, это просмотр.НЕВИДИМЫЙ или видимый.ИСЧЕЗЛО (4 или 8 соответственно).
что касается сквозного прохождения, при отладке, каково значение key_code? возможно, это не KEYCODE_ENTER, который равен 66
для скрытия клавиатуры, которая мне нравится:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Комментарии:
1. Возможно, я ошибся, он больше не проходит. Вид. VISIBLE != ВИДИМЫЙ очень помогает.