Intereting Posts
GPS-время в Android Создать новый ParseUser с помощью Google+ AccessToken возвращает InvalidSession? Как получить доступную / свободную память от АБР? Как создать пользовательский счетчик, как рамка вокруг спиннера с треугольником вниз с правой стороны? Когда я запускаю Thread второй раз: java.lang.IllegalThreadStateException: Thread уже запущен Давайте разрешим «Ошибка поиска стиля« mapViewstyle »в текущей теме» Назад Проецирование в Java с помощью OpenCV Круг медленно заполняя цвет в андроиде Как отобразить тост внутри обработчика / потока? Как уменьшить внутреннюю прописку вокруг текста в объекте кнопки Android? Как получить имя оператора, подключенного к Интернету в телефоне с двумя SIM-картами? Использование Twitter4j в android, получение ошибки lint в библиотеке – Недопустимая ссылка на пакет в библиотеке Как я могу установить тег для фрагментов viewpager? Ограничение методов 64K за файл dex на Android Listview с edittext – автоматический прокрутка на "следующий"

Android softkeyboard showSoftInput vs toggleSoftInput

showSoftInput() не показывает клавиатуру для меня, но toggleSoftInput() . Я видел еще одну запись, которая говорила, что отключает жесткую клавиатуру при использовании эмулятора, но я не использую эмулятор. Я загружаю APK на реальном устройстве без жесткой клавиатуры. Не должны ли работать оба метода? Почему не работает showSoftInput() ? Я хотел бы явно связать клавиатуру с конкретным текстовым полем.

Не работает:

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); editText.setText("textchange"); //i see the text field update imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED); 

Работает:

 InputMethodManager imm = (InputMethodManager) getDelegate().getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); 

Solutions Collecting From Web of "Android softkeyboard showSoftInput vs toggleSoftInput"

Кажется, что клавиатура изначально отображается, но скрыта чем-то другим, потому что следующее работает (но на самом деле грязно работает):

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); editText.postDelayed(new Runnable() { @Override public void run() { editText.requestFocus(); imm.showSoftInput(editText, 0); } }, 100); 

И, глядя на логарифм, я подозреваю, что причина этого сообщения скрывает первоначально показанную клавиатуру:

Скрыть диалог буфера обмена при запуске ввода: завершено кем-то еще …!

Показать клавиатуру + фокус, а также, если вы хотите скрыть клавиатуру

 @Override public void onResume () { super.onResume(); inputSearch.setFocusableInTouchMode(true); inputSearch.requestFocus(); // Show Keyboard InputMethodManager imm = (InputMethodManager) getSherlockActivity().getSystemService( Context.INPUT_METHOD_SERVICE); imm.showSoftInput(inputSearch, InputMethodManager.SHOW_IMPLICIT); } 

PS inputSearch = (EditText) getSherlockActivity (). FindViewById (R.id.inputSearch);

  // Hide Keyboard InputMethodManager imm = (InputMethodManager) getSherlockActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(inputSearch.getWindowToken(), 0); 

Точный ответ на этот вопрос, почему showSoftInput не работает, и toggleSoftInput делает?

Разве что представление, к которому вы пытаетесь отобразить Клавиатуру, не имеет фокуса. Поэтому для решения этой проблемы и использования метода showSoftInput вам нужно будет вызвать следующие методы на вашем представлении:

  setFocusable(true); setFocusableInTouchMode(true); 

Вызов вышеуказанных методов позволит убедиться, что при нажатии на «Просмотр» сохраняет и фиксирует фокус.

ShowSoftInput () не работает, когда устройство имеет жесткую (выдвижную) клавиатуру

Android-дисплей софт-клавиатурой с showSoftInput не работает?

Попробуй это:

 public void showTheKeyboard(Context context, EditText editText){ InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); } 

Если это не работает, прочитайте учебник отсюда

 public void hideKeyboard() { myTextView.setFocusable(true); myTextView.setFocusableInTouchMode(true); imm.hideSoftInputFromWindow(myTextView.getWindowToken(), 0); } 

РАБОТАЕТ

 public void hideKeyboard() { imm.hideSoftInputFromWindow(myTextView.getWindowToken(), 0); } 

НЕ РАБОТАЕТ

Imm рассматривается ранее, когда я использую фрагмент, поэтому:

Объявить им во Фрагменте

 private InputMethodManager imm; 

Затем в фрагменте добавьте:

 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); } 

Он говорит после 3 – 4 часов исследований и неудач!

Спасибо user_CC! 🙂

Фил