Intereting Posts
Что более безопасно: внешний браузер или ChromeTab для авторизации? Я никогда не устанавливал пароли в хранилище ключей и псевдоним, так как они созданы? Установка Android-приложения на устройство из Android Studio SQLite запрос обновления базы данных с несколькими условиями в Android Android создать настраиваемый элемент меню переполнения «Версия биллинга в приложении 3 не поддерживается» с обновленным Play Store Android StackScrollLayout Вызов собственного метода дважды из сторонней библиотеки в Activity приводит к закрытию приложения Android Как обращаться с кнопкой возврата в действии Как проверить код, созданный для сохранения / восстановления жизненного цикла активности? Android GridLayoutManager с диапазоном столбцов и строк Android: Как написать несколько селекторов в одном XML-файле OnContextItemSelected не запускается, когда он вызывается из окна диалога Как выделить ImageView при фокусировке или нажатии? Заблокировать состояние блокировки на Android

Андроид спрятал keybord при нажатии enter (в EditText)

Когда мой пользователь нажимает Enter на виртуальном андроиде «пользователь проверяет запись!» Keybord мой keybord останется видимым! (Зачем?)

Вот мой код Java …

private void initTextField() { entryUser = (EditText) findViewById(R.id.studentEntrySalary); entryUser.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: case KeyEvent.KEYCODE_ENTER: userValidateEntry(); return true; } } return true; } }); } private void userValidateEntry() { System.out.println("user validate entry!"); } 

… здесь мой взгляд

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <EditText android:id="@+id/studentEntrySalary" android:text="Foo" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

Может быть, что-то не так на моем виртуальном устройстве?

Удалена мертвая ссылка ImageShack

Solutions Collecting From Web of "Андроид спрятал keybord при нажатии enter (в EditText)"

Это должно сделать это:

 yourEditTextHere.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // NOTE: In the author's example, he uses an identifier // called searchBar. If setting this code on your EditText // then use v.getWindowToken() as a reference to your // EditText is passed into this callback as a TextView in.hideSoftInputFromWindow(searchBar .getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); userValidateEntry(); // Must return true here to consume event return true; } return false; } }); 

Сохраните singleLine = "true" и добавьте imeOptions = "actionDone" в EditText. Затем в OnEditorActionListener проверьте, действительно ли actionId == EditorInfo.IME_ACTION_DONE (но измените его на вашу реализацию):

 if (actionId == EditorInfo.IME_ACTION_DONE) { if ((username.getText().toString().length() > 0) && (password.getText().toString().length() > 0)) { // Perform action on key press InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(username.getWindowToken(), 0); doLogin(); } } 

Если вы сделаете текстовое поле одной строкой (я считаю, что свойство называется SingleLine в XML-файлах макета), он выйдет из клавиатуры при вводе.

Здесь вы найдете: http://developer.android.com/reference/android/R.styleable.html#TextView_singleLine

Я создаю пользовательский компонент, который расширяет AutoCompleteTextView, как в приведенном ниже примере:

 public class PortugueseCompleteTextView extends AutoCompleteTextView { ... @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_BACK)) { InputMethodManager inputManager = (InputMethodManager) getContext(). getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow( this.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } return super.onKeyPreIme(keyCode, event); } 

Я использую этот код в AlertDialog.Builder, но его можно использовать для Activity.