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"


но все тщетно. Это просто никогда не видно. Чего мне не хватает?

664   6  

6 ответов:

вы должны убедиться, что ваш эмулятор не настроен на использование аппаратная клавиатура. Это можно сделать, выбрав Edit на выбранном эмуляторе в AVD. Тогда убрать the Hardware keyboard present настройка.

вы также можете попробовать использовать другой эмулятор, например Genymotion. Он поддерживает полное аппаратное ускорение (многоядерный процессор, а также GPU) и работает намного быстрее, чем любой из образов эмулятора android. Если вы используете Genymotion вы будете нужно отключить аппаратную клавиатуру в Android (см. ниже для деталей).

чтобы отключить аппаратную клавиатуру в Genymotion:
Перейти к Settings ->Language & input и откройте Default пункта Keyboard & Input Methods. Там есть Hardware настройка, которую вы можете включить / выключить. Когда это on вы используете физическую клавиатуру и когда это выкл стандартная мягкая клавиатура всплывающее всякий раз, когда текстовое поле получает фокус.

скриншоты Параметры, как Genymotion : Default Item

enter image description here

в версии 2.1.1 - нажмите на настройки виртуального устройства - затем установите флажок" использовать виртуальную клавиатуру для ввода". enter image description here

enter image description here

есть два места, чтобы отменить выбор аппаратной клавиатуры в качестве 1.1.0. Этого недостаточно:

enter image description here

должен сделать это (нажмите Tools | Android | AVD Manager; затем создайте новый или отредактируйте старый AVD, а затем нажмите Show Advanced Settings; прокрутите вниз и понятно Enable keyboard input):

enter image description here

может быть ваш эмулятор не поддерживает 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 с помощью аппаратного компьютера клавиатура.

  1. в Диспетчере виртуальных устройств Android (AVD) выберите действие изменить для устройства, с которым вы хотите работать
  2. нажать "Показать дополнительные настройки" и прокрутите вниз до нижней части страницы в разделе "клавиатуры"
  3. снимите флажок "Включить ввод с клавиатуры"

[B]API 22

программная клавиатура отображается независимо от того, что вы делаете с настройками аппаратной клавиатуры. Если вы хотите включить аппаратная поддержка клавиатуры наряду с мягкой клавиатурой тогда,

  1. в AVD щелкните действие изменить для устройство, с которым вы хотите работать
  2. нажать "Показать дополнительные настройки" и прокрутите вниз до нижней части страница в разделе "клавиатура"
  3. Проверьте опцию "Включить ввод с клавиатуры"

[C]API 23

Если вы хотите использовать аппаратную и программную клавиатуру...

  1. Следуйте [B] шаги с 1 по 3
  2. на виртуальном устройстве запустите Настройки, затем выберите язык и ввод / текущая клавиатура
  3. включить аппаратное обеспечение-показать метод ввода

Если вам не нужна аппаратная клавиатура, в расширенных настройках AVD снимите флажок "Включить ввод с клавиатуры". Вам не нужно будет изменять какие-либо настройки на виртуальном устройстве.

[D]APIs 24 и 25

  1. выполните [B] шаги с 1 по 3 выше, проверяя или снимите флажок " Включить ввод с клавиатуры " в зависимости от того, хотите ли вы включить клавиатуру hardqare.
  2. на виртуальном устройстве запустите Настройки, затем выберите язык и ввод / физическая клавиатура
  3. включить "показать виртуальную клавиатуру"

Если в AVD была выбрана опция включить ввод с клавиатуры, то теперь вы сможете использовать как жесткие, так и мягкие вводы с клавиатуры. Если вы сняли флажок в AVD, будет отображаться мягкая клавиатура не обращающий внимания.

[E]API 26

точно так же, как [D] API 24 и 25, за исключением того, что вам нужно перемещаться по дополнительному уровню меню "Система" в настройках устройства, прежде чем перейти к языку и вводу / физической клавиатуре

Comments

    Ничего не найдено.