あるイベントの後に私のアプリで、ユーザーに記入してもらいたいですEditText
。それを行うために、私はこれにフォーカスをリクエストし、EditText
このコードを使用してキーボードを表示しようとします:
public void onGivenEvent(int which) {
mMyDialog.dismiss(getActivity());
mMyEditField.requestFocus();
InputMethodManager imm =
(InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mMyEditField, InputMethodManager.SHOW_IMPLICIT);
}
xml はmMyEditField
次のようになります。
<EditText
android:id="@+id/edit_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:background="@null"
android:digits="0123456789.,"
android:freezesText="true"
android:hint="some hint"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:maxLength="15"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textColor="@android:color/black"
android:textSize="16sp" />
面白いことに、このコードは最初の試行ではキーボードを表示しません。このコードを 1 回実行すると、デバイスの回転後にキーボードが正しく表示されます。正しく動作しないという同様の問題がandroid:selectAllOnFocus="true"
ありましたが、回避策を使用しました-内部で設定OnFocusChangeListener
しました。mMyEditField.selectAll()
この問題を解決する方法はありますか?