2

我有一个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);

但这些也行不通。任何建议如何解决我的问题。

4

3 回答 3

0

尝试

getWindow().setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
于 2013-05-30T16:39:17.033 回答
0

您可以使用myedittext.requestFocus()

当活动被破坏时,键盘将自动消失。

于 2013-05-30T16:43:42.797 回答
0

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

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

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

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

editText.requestFocus()
于 2013-05-30T16:44:22.513 回答