Я новичок в 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
:
android:windowSoftInputMode="stateVisible|adjustResize"
но все напрасно. Он просто не показывает. Что мне не хватает?
Ответ 1
Вам нужно убедиться, что ваш эмулятор не настроен на использование аппаратной клавиатуры . Это можно сделать, выбрав Edit
на выбранном эмуляторе в AVD. Затем снимите флажок Hardware keyboard present
.
Вы также можете попробовать использовать другой эмулятор, например Genymotion. Он поддерживает полное аппаратное ускорение (многоядерный процессор, а также графический процессор) и работает намного быстрее, чем любые изображения эмуляторов Android. Если вы используете Genymotion, вам необходимо отключить аппаратную клавиатуру в Android (подробнее см. Ниже).
Чтобы отключить аппаратную клавиатуру в Genymotion:
Перейдите к Settings
→ Language & input
и откройте элемент Default
в разделе Keyboard & Input Methods
. Существует параметр Hardware
, который можно включить/выключить. Когда он на, вы используете свою физическую клавиатуру, а когда она выключена, стандартная мягкая клавиатура должна появляться всякий раз, когда текстовое поле получает фокус.
Скриншоты для настроек Genymotion:
![Default Item]()
![enter image description here]()
Ответ 2
В версии 2.1.1
- нажмите на настройки своего виртуального устройства
- затем установите флажок "Использовать виртуальную клавиатуру для ввода".
![enter image description here]()
![enter image description here]()
Ответ 3
Есть два места для отмены выбора аппаратной клавиатуры в AS 1.1.0. Этого недостаточно:
![enter image description here]()
Необходимо сделать это (нажмите Tools | Android | AVD Manager
, затем создайте новый или отредактируйте старый AVD, а затем нажмите Show Advanced Settings
; прокрутите вниз и снимите Enable keyboard input
):
![enter image description here]()
Ответ 4
Чтобы показать:
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);
Просто попробуй это...
Ответ 5
Может быть, ваш эмулятор не поддерживает softkeyboard.
Добавить свойство аппаратного обеспечения Поддержка клавиатуры и присвоить значение true для вашего эмулятора.
Если это уже верно, тогда Отметьте этот ответ.
Ответ 6
Метод включения экранной мягкой клавиатуры для эмуляторов Android Studio 2+ зависит от уровня API эмулятора. Я протестировал различные методы, начиная с API 15, и записал следующие шаги.
[A] API 15, 17, 19 и 21.
Следующие шаги позволят использовать экранную мягкую клавиатуру, но отключат возможность ввода текста и взаимодействия с AVD с помощью компьютерной клавиатуры компьютера.
- В Android Virtual Device Manager (AVD) нажмите действие редактирования для устройства, с которым вы хотите работать
- Нажмите "Показать дополнительные настройки" и прокрутите страницу вниз до нижней части страницы в разделе "Клавиатура".
- Снимите флажок "Включить ввод с клавиатуры"
[B] API 22
Отображается мягкая клавиатура, независимо от того, что вы делаете с настройками аппаратной клавиатуры. Если вы хотите включить поддержку аппаратной клавиатуры рядом с мягкой клавиатурой, тогда
- В AVD нажмите действие редактирования для
устройство, с которым вы хотите работать с
- Нажмите "Показать дополнительные настройки" и прокрутите страницу вниз до нижней части
страницу в раздел "Клавиатура".
- Установите флажок "Включить ввод с клавиатуры"
[C] API 23
Если вы хотите использовать аппаратную и мягкую клавиатуру, тогда...
- Следуйте шагам от 1 до 3 [B]
- На виртуальном устройстве запустите настройки, затем выберите Язык и ввод/Текущая клавиатура.
- Включить оборудование - Показать метод ввода
Если вам не нужна аппаратная клавиатура, в дополнительных настройках AVD снимите флажок "Включить ввод с клавиатуры". Вам не нужно будет изменять какие-либо настройки на виртуальном устройстве.
[D] API 24 и 25
- Следуйте шагам с 1 по 3 выше, отметьте или снимите флажок "Включить
клавиатура "в зависимости от того, хотите ли вы включить клавиатуру hardqare.
- На виртуальном устройстве запустите настройки, затем выберите Язык и ввод/Физическая клавиатура.
- Включить "Показать виртуальную клавиатуру"
Если в AVD была выбрана опция "Включить ввод с клавиатуры", теперь вы сможете использовать как жесткие, так и мягкие входы клавиатуры. Если вы отключили опцию в AVD, мягкая клавиатура будет отображаться независимо.
[E] API 26
Точно так же, как [D] API 24 и 25, за исключением того, что вам нужно перейти через дополнительный уровень меню "Система" в настройках устройства, прежде чем вы перейдете на язык и ввод/физическая клавиатура.