软键盘不显示焦点
当EditText以编程方式聚焦时,我有一个小功能来打开软键盘,如下所示...
public void getUserName() {
EditText tv = (EditText)findViewById(R.id.user_info_name);
tv.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b) {
showDialog("Focused!");
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
}
});
tv.selectAll();
tv.requestFocus();
}
但是,软键盘不会自动出现,但对话框显示聚焦。 为了让键盘出现,我必须在EditText里面点击。
我的XML如下...
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@id/user_info_name"
android:editable="true"
android:hint="@string/user_info_name"
android:inputType="textCapWords|textPersonName"
android:textColor="@color/blue_gray"
android:maxLength="50"
android:layout_centerInParent="true"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:enabled="true"
android:focusable="true"
android:focusableInTouchMode="true" />
有人可以请告知为什么它不工作,或者我缺少/未能解决。
一如既往地提前致谢。
已解决:下面的函数修改解决了问题...
public void getUserName() {
EditText tv = (EditText)findViewById(R.id.user_info_name);
tv.selectAll();
tv.requestFocus();
InputMethodManager imm = (InputMethodManager)this.getSystemService(this.INPUT_METHOD_SERVICE);
imm.showSoftInput(tv,InputMethodManager.SHOW_IMPLICIT);
}
链接地址: http://www.djcxy.com/p/93347.html
上一篇: Soft Keyboard doesn't show on focus
下一篇: Android: EditText in Dialog doesn't pull up soft keyboard