マニフェストにandroid:theme="@android:style/Theme.Dialog"
を使用するシンプルなアクティビティがあります。ダイアログアクティビティでソフトキーボードを自動的に表示
私のアクティビティは、EditText、2 Buttons、およびTextViewで構成されています。これは、ユーザーが名前を入力してOK/Cancelを押すためのボックスにすぎません。
私はちょうどEditTextにフォーカスし、アクティビティの開始時にソフトキーボードが自動的に表示されるようにします。私はこれについて数え切れないほどの記事を読んだことがありますが、私はそれを動かすことができません。アクティビティが開始されると、点滅カーソルがEditTextに表示されますが、キーボードをクリックするまでキーボードは表示されません。私ものonCreateでこれを試してみた
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);
}
});
}
}
:
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>
をこの作業を試してみてください。 – user432209
ダイアログをスローするのではなく、アクティビティをテーマとしてダイアログを使用する特別な理由はありますか? – Thomas
@ user432209テストデバイスに物理キーボードがありますか? – Thomas