【问题标题】:Keyboard issue for EditTextEditText 的键盘问题
【发布时间】:2013-05-30 16:35:51
【问题描述】:

我有一个Dialog,其中我有一个EditText。 我面临的问题是:

1)。当Dialog 在那一刻显示时,键盘不会自动出现。所以我不得不以编程方式调出键盘。

InputMethodManager immOnResume = (InputMethodManager) getActivity().getSystemService(
                                        Context.INPUT_METHOD_SERVICE);
                        immOnResume.showSoftInput(mEditText,
                                InputMethodManager.SHOW_FORCED);

2)。当按下主页按钮时,键盘在主屏幕中仍然可见。我认为当我以编程方式启动键盘时,我必须以编程方式隐藏键盘。

InputMethodManager immN = (InputMethodManager) getActivity().getSystemService(
                                    Context.INPUT_METHOD_SERVICE);
                    immN.hideSoftInputFromWindow(
                            mEditText.getWindowToken(), 0);

但是这些也不起作用。 任何建议如何解决我的问题。

【问题讨论】:

  • 键盘没有消失,因为您使用了InputMethodManager.SHOW_FORCED。你应该改用InputMethodManager.SHOW_IMPLICIT
  • @Karakuri:谢谢它对我有用

标签: android android-edittext android-softkeyboard android-keypad


【解决方案1】:

试试

getWindow().setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

【讨论】:

  • 如果我按下主页按钮会怎样。
  • 没什么。请先尝试这种方式。就我而言,我正在处理一个带有对话框主题的活动,并且键盘在按下主页按钮时被隐藏。
【解决方案2】:

您可以使用myedittext.requestFocus()

当activity被销毁时,键盘会自动消失。

【讨论】:

    【解决方案3】:

    如果你的 UI 是用 XML 编写的,你可以考虑添加 requestFocus 标签:

    <EditText ...>
        <requestFocus />
    </EditText>
    

    当您的对话框打开时,这应该会触发您的 EditText 字段的焦点,这反过来应该会打开您的键盘。

    但是,如果您的 UI 是以编程方式完成的

    editText.requestFocus()
    

    【讨论】:

      猜你喜欢
      • 2012-12-25
      • 2011-10-17
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多