В моем приложении есть служба, которая показывает диалог. Поскольку Служба не может отображать диалог напрямую , Я использую следующий способ :
myDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
Диалог имеет EditText и две кнопки , Я установил стиль "windowSoftInputMode". xml:
<style name="float_dialog_style" parent="android:style/Theme.Dialog">
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowSoftInputMode">adjustPan</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
Когда диалог выделен, отображается программная клавиатура. Но диалог всегда закрывается программной клавиатурой. Как я могу это решить? Спасибо!