Android: Как сделать клавиатуру всегда видимой?

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

Solutions Collecting From Web of "Android: Как сделать клавиатуру всегда видимой?"

Добавьте android: windowSoftInputMode = "stateAlwaysVisible" к вашей деятельности в файле AndroidManifest.xml:

<activity android:name=".MainActivity" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysVisible" /> 

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

Чтобы убедиться, что клавиатура всегда виден, вам, возможно, придется создать свою собственную клавиатуру как часть пользовательского интерфейса вашего приложения. Вот учебник, показывающий вам, как это сделать с помощью KeyboardView: http://www.fampennings.nl/maarten/android/09keyboard/index.htm

Вы должны иметь EditText в своем макете, и для этого необходимо EditText базовый класс EditText . Затем переопределите onKeyPreIme() и верните True . Теперь ваша клавиатура будет всегда видна и не может быть отменена клавишей Back.

Внимание : из-за того, что ваш onKeyPreIme() возвращает true вы не можете выйти из приложения с помощью обратного ключа.

Пример:

 public class CustomEdit extends EditText { public CustomEdit(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.e("Log", "onKeyPreIme"); return true; //return super.onKeyPreIme(keyCode, event); } } 

OnKeyPreIme () – разработчик Android

Я нашел способ, который работает для меня, чтобы сохранить мягкую клавиатуру видимой после редактирования в моем поле myEditText класса EditText . Трюк состоит в том, чтобы переопределить метод onEditorAction чтобы он возвращал true

  myEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { return true; } }); 

Или иначе onEditorAction возвращает true только после нажатия клавиши «Готово» ( IME_ACTION_DONE ), иначе false

  myEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId==EditorInfo.IME_ACTION_DONE){ Log.i(LOG_TAG, "IME_ACTION_DONE"); return true; } return false; } }); 

(См. Также этот ответ по методу onEditorAction )

Добавление android:windowSoftInputMode="stateAlwaysVisible к файлу манифеста помогло android:windowSoftInputMode="stateAlwaysVisible мягкую клавиатуру при запуске деятельности, но это не помешало ей снова исчезнуть всякий раз, когда после нажатия android:windowSoftInputMode="stateAlwaysVisible « Готово »была нажата кнопка« Готово ».