У меня есть простое действие, которое использует android:theme="@android:style/Theme.Dialog"
в манифесте.
Моя деятельность состоит из EditText, 2 кнопок и TextView. Это не более чем поле для ввода пользователем имени и нажатия OK / Отмена.
Я просто хочу сфокусировать EditText и сделать так, чтобы программная клавиатура автоматически отображалась при запуске Activity. Я читал бесчисленные посты об этом, но я просто не могу заставить его работать. Когда начинается действие, в EditText появляется мигающий курсор, но клавиатура не отображается, пока я не щелкну внутри него.
Вот моя активность:
public class Finalize extends Activity {
private EditText mEditName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.finalize_dialog);
mEditName = (EditText) findViewById(R.id.file_name_edit);
mEditName.setFocusable(true);
mEditName.requestFocus();
mEditName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
});
}
}
Я также пробовал это в onCreate:
InputMethodManager mgr = (InputMethodManager) getSystemService(this.INPUT_METHOD_SERVICE);
mgr.showSoftInput(mEditName, 0);
Редактировать: Мой манифест для справки
<activity class=".Finalize"
android:name=".Finalize"
android:label="@string/file_name_title"
android:theme="@android:style/Theme.Dialog"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysVisible">
</activity>