2

我有一个Dialog其中我有一个EditText。 我面临的问题是: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); 

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

+2

键盘没有消失,因为你使用'InputMethodManager.SHOW_FORCED'。你应该使用'InputMethodManager.SHOW_IMPLICIT'来代替。 – Karakuri

+0

@Karakuri:感谢它为我工作 – Vaibs

回答

0

尝试

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

如果我按Home按钮,怎么办? – Vaibs

+0

什么都没有。请先尝试这种方式。在我的情况下,我正在处理一个带有对话框主题的活动,并且按下主页按钮时隐藏了键盘。 – svennergr

+0

我试过,但它没有工作。 – Vaibs

0

您可以使用myedittext.requestFocus()

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

+0

我已经在xml以及代码中添加了请求焦点。 – Vaibs

0

如果你的UI是用XML,你可能会考虑加入requestFocus的标签:

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

打开你的对话框时,这反过来应该打开你的键盘应该触发专注于你的EditText场。

但是,如果你的UI程序来完成

editText.requestFocus()