在我的应用程序中,我希望我的用户在某些事件之后填写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);
}
xmlmMyEditField
看起来像这样:
<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" />
有趣的是,这段代码在第一次尝试时没有显示键盘。当此代码执行一次时,设备旋转键盘正确显示后。android:selectAllOnFocus="true"
我遇到了无法正常工作的类似问题,但我使用了解决方法 - 我OnFocusChangeListener
在mMyEditField.selectAll()
里面设置。
任何想法如何解决这个问题?