对话框关闭后,EditText未显示软键盘

时间:2015-09-08 20:55:33

标签: android android-edittext android-softkeyboard

我的应用中有一个表格,里面装满了EditTexts。在表单中间的某处,有一个日期选择器对话框(See here)。用户可以通过点击软键盘上的“下一步”按钮从EditText转到EditText。当用户到达日期选择器时,键盘将关闭并显示对话框。当用户选择日期时,我希望表单中的下一个EditText获得焦点并再次显示键盘。

我目前所拥有的是日期设置,对话框关闭,下一个EditText获得焦点并显示光标,但键盘不会打开。我尝试过各种方法试图让键盘打开,但似乎都没有。这是我的一些代码

RelativeLayout next = rows.get(currentRow);
next.requestFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

在这里,我从RelativeLayouts(rows)列表中获取下一个RelativeLayout。我请求焦点这一行,然后我要求打开软键盘。这不起作用。

我也在我的EditText onFocusChangedListener中尝试了这个:

@Override
public void onFocusChange(View v, boolean hasFocus) {
...
String s = text.getText().toString().trim();
if (hasFocus){
    ...
    imm.showSoftInput((EditText)v, InputMethodManager.SHOW_IMPLICIT);
}

2 个答案:

答案 0 :(得分:0)

您是否尝试在活动清单文件中添加以下内容?

android:windowSoftInputMode =“stateAlwaysVisible”

这会使您的键盘在该活动中始终可见。

答案 1 :(得分:0)

也许这是一个迟到的答案,但我遇到了与我的应用程序类似的问题。在我的应用程序中有一些editText元素和一个取消按钮,弹出一个警告对话框(有消息,你一定要取消?)。取消对话框后,即使光标位于editText中,键盘也不会出现。所以我创建了一个两个Runnable实例(一个用于清晰焦点,一个用于请求关注元素)并在需要时调用它们。例如。当对话框出现时调用清晰焦点,当消息出现时调用请求焦点一个。最后它对我有用。