代码之家  ›  专栏  ›  技术社区  ›  h_k

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

  •  0
  • h_k  · 技术社区  · 10 年前

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

    我当前的任务是设置日期,关闭对话框,聚焦下一个EditText,显示光标,但键盘不会打开。我尝试过各种方法来打开键盘,但似乎都不起作用。下面是我的一些代码

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

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

    我也在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 回复  |  直到 10 年前
        1
  •  0
  •   goku91    8 年前

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

        2
  •  0
  •   justLearning    10 年前

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

    android:windowSoftInputMode=“stateAlwaysVisible”

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

    推荐文章