Как показать программную клавиатуру на устройстве с жесткой клавиатурой, когда hkbd закрыт? - PullRequest
2 голосов
/ 05 апреля 2011

У меня есть следующий вопрос к моему первому (решенному) вопросу: ТАК Android show softkeybard ...

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

Тот же манифест должен применяться с "stateVisible", установленным в манифесте для моей деятельности. Нужен ли какой-либо явный код с InputMethodManger? Опять же, я экспериментировал с очевидными методами и флагами, но он не открывает клавиатуру на телефонах с выдвижными клавиатурами.

Манифест скопирован здесь для удобства:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mycompany.android.studyIme"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".StudyImeActivity"
                  android:label="@string/app_name" 
                  android:windowSoftInputMode="stateAlwaysVisible|stateVisible">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

1 Ответ

0 голосов
/ 06 апреля 2011

Мой коллега решил проблему.Вместо попытки принудительного показа, она продемонстрировала решение с помощью метода «toggle».

 InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
 imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 

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

...