Подтвердить что ты не робот

Показывать программную клавиатуру при запуске Activity

У меня есть 2 действия, A и B. Когда A запускается, он проверяет условие и, если оно истинно, вызывает startActivityForResult(), чтобы начать B. B принимает только текстовый ввод, поэтому имеет смысл, чтобы мягкая клавиатура автоматически всплывала когда начинается B. Когда действие начинается, EditText уже имеет фокус и готов к вводу.

Проблема заключается в том, что клавиатура никогда не появляется, даже если windowSoftInputMode="stateAlwaysVisible" установлен в манифесте под тегом <activity> для B. Я также попытался с значением, установленным на stateVisible. Поскольку он не отображается автоматически, я должен нажать EditText, чтобы он показывался.

Кто-нибудь знает, что такое решение?

4b9b3361

Ответ 1

Что лучше всего для меня работало в Android Manifest для активности B, добавив

android:windowSoftInputMode="stateVisible"

Надеюсь, что это поможет и вам.

Ответ 2

Самое простое решение: Положите

android:windowSoftInputMode = "stateVisible" 

в разделе Действия AndroidManifest.xml

Ответ 3

Если requestFocus на EditText не показывает его, возможно, это сделает это:

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, 0);

Посмотрите здесь для получения дополнительной информации.

Ответ 4

Для меня работали только такие решения: добавить манифест для этой активности:

android:windowSoftInputMode="stateVisible|adjustPan"

Ответ 5

Попробуйте показать клавиатуру с некоторой задержкой. Что-то похожее на это:

public void onResume() {
    super.onResume();

    TimerTask tt = new TimerTask() {

        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(yourTextBox, InputMethodManager.SHOW_IMPLICIT);
        }
    };

    final Timer timer = new Timer();
    timer.schedule(tt, 200);
}

Ответ 6

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

Ответ 7

Файл: AndroidManifest.xml

<activity android:name=".MainActivity">

Добавьте следующее свойство:

android:windowSoftInputMode="stateVisible"

Который работал для меня.

Ответ 8

вставить это после setContentView

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

Ответ 9

У меня есть два пути.

Способ 1. Используйте следующий код внутри метода OnCreate

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Это предотвратит появление клавиатуры, если вы не нажмете.

или же

Способ 2 Вы можете переместить фокус на другое представление, например TextView, используя "requestfocus" в xml.

<TextView
            android:id="@+id/year_birth_day"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="1991">            
           <requestFocus />
           </TextView>

Метод 3 (я думаю, этого следует избегать) Используя следующий код в manifest-

android:windowSoftInputMode="stateVisible"