Android softkeyboard никогда не появляется в эмуляторе
Я новичок в Android. Я уже потратил два часа на поиски. Что бы я ни пробовал softkeyboard никогда не показывается для моего EditText. Я создаю его просто:
EditText editText = (EditText)findViewById(R.id.editText);
пробовал:
editText.requestFocus();//i tried without this line too
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
и:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
});
Я тоже пробовал:
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Я попытался вставить эту строку в AndroidManifest.xml file:
android:windowSoftInputMode="stateVisible|adjustResize"
но все тщетно. Это просто никогда не видно. Чего мне не хватает?
6 ответов:
вы должны убедиться, что ваш эмулятор не настроен на использование аппаратная клавиатура. Это можно сделать, выбрав
Editна выбранном эмуляторе в AVD. Тогда убрать theHardware keyboard presentнастройка.вы также можете попробовать использовать другой эмулятор, например Genymotion. Он поддерживает полное аппаратное ускорение (многоядерный процессор, а также GPU) и работает намного быстрее, чем любой из образов эмулятора android. Если вы используете Genymotion вы будете нужно отключить аппаратную клавиатуру в Android (см. ниже для деталей).
чтобы отключить аппаратную клавиатуру в Genymotion:
Перейти кSettings->Language & inputи откройтеDefaultпунктаKeyboard & Input Methods. Там естьHardwareнастройка, которую вы можете включить / выключить. Когда это on вы используете физическую клавиатуру и когда это выкл стандартная мягкая клавиатура всплывающее всякий раз, когда текстовое поле получает фокус.скриншоты Параметры, как Genymotion :
в версии 2.1.1 - нажмите на настройки виртуального устройства - затем установите флажок" использовать виртуальную клавиатуру для ввода".
есть два места, чтобы отменить выбор аппаратной клавиатуры в качестве 1.1.0. Этого недостаточно:
должен сделать это (нажмите
Tools | Android | AVD Manager; затем создайте новый или отредактируйте старый AVD, а затем нажмитеShow Advanced Settings; прокрутите вниз и понятноEnable keyboard input):
может быть ваш эмулятор не поддерживает softkeyboard..
добавьте аппаратную поддержку клавиатуры свойств и установите ее в true для вашего эмулятора.
Если это так, то проверить этот ответ.
показать:
EditText editText = (EditText) findViewById(R.id.myEdit); InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); // only will trigger it if no physical keyboard is open mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);и, чтобы скрыть:
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);просто попробуйте это....
способ включения экранной программной клавиатуры для эмуляторов Android Studio 2 + зависит от уровня API эмулятора. Я протестировал различные методы, начиная с API 15 и записал шаги ниже.
[A]APIs 15, 17, 19 и 21.
следующие шаги включат экранную программную клавиатуру, но отключат возможность ввода текста и взаимодействия с AVD с помощью аппаратного компьютера клавиатура.
- в Диспетчере виртуальных устройств Android (AVD) выберите действие изменить для устройства, с которым вы хотите работать
- нажать "Показать дополнительные настройки" и прокрутите вниз до нижней части страницы в разделе "клавиатуры"
- снимите флажок "Включить ввод с клавиатуры"
[B]API 22
программная клавиатура отображается независимо от того, что вы делаете с настройками аппаратной клавиатуры. Если вы хотите включить аппаратная поддержка клавиатуры наряду с мягкой клавиатурой тогда,
- в AVD щелкните действие изменить для устройство, с которым вы хотите работать
- нажать "Показать дополнительные настройки" и прокрутите вниз до нижней части страница в разделе "клавиатура"
- Проверьте опцию "Включить ввод с клавиатуры"
[C]API 23
Если вы хотите использовать аппаратную и программную клавиатуру...
- Следуйте [B] шаги с 1 по 3
- на виртуальном устройстве запустите Настройки, затем выберите язык и ввод / текущая клавиатура
- включить аппаратное обеспечение-показать метод ввода
Если вам не нужна аппаратная клавиатура, в расширенных настройках AVD снимите флажок "Включить ввод с клавиатуры". Вам не нужно будет изменять какие-либо настройки на виртуальном устройстве.
[D]APIs 24 и 25
- выполните [B] шаги с 1 по 3 выше, проверяя или снимите флажок " Включить ввод с клавиатуры " в зависимости от того, хотите ли вы включить клавиатуру hardqare.
- на виртуальном устройстве запустите Настройки, затем выберите язык и ввод / физическая клавиатура
- включить "показать виртуальную клавиатуру"
Если в AVD была выбрана опция включить ввод с клавиатуры, то теперь вы сможете использовать как жесткие, так и мягкие вводы с клавиатуры. Если вы сняли флажок в AVD, будет отображаться мягкая клавиатура не обращающий внимания.
[E]API 26
точно так же, как [D] API 24 и 25, за исключением того, что вам нужно перемещаться по дополнительному уровню меню "Система" в настройках устройства, прежде чем перейти к языку и вводу / физической клавиатуре






Comments