2015-02-17 117 views
1

无法找到明确的答案,基本上我有一个EditText字段的活动。软键盘被设置为在清单中可见,所以当活动开始时键盘是可见的,但是如果用户导航并使用后退按钮返回键盘隐藏(我需要它在继续时可见)。 我已将下面的方法添加到我的onResume中,但似乎不起作用? 任何想法我在这里失踪?显示软键盘onResume

private void showSoftKeyboard(){ 
    quickListName.requestFocus(); 
    InputMethodManager imm = D(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.showSoftInput(quickListName,InputMethodManager.SHOW_IMPLICIT); 
} 

回答

2

试试这个:

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 
+0

不错的,像一个魅力工作!谢谢。 – ScottishUser 2015-02-17 23:27:13

0

尝试呼吁EditTextclearFocus当您收到onStop回调

+0

如果我正确理解你,我试着重写onStop()并在编辑文本上添加一个clearFocus,但没有改变,键盘仍然隐藏。 – ScottishUser 2015-02-17 22:26:22

+0

该文档说[SHOW_IMPLICIT](http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#SHOW_IMPLICIT)可能不会显示键盘,也许您可​​以使用InputMethodManager.SHOW_FORCED – 2015-02-17 22:41:44

+0

尝试尝试此操作没有变化,键盘隐藏时,返回到活动 – ScottishUser 2015-02-17 23:23:48

1

以前,我曾用下面的代码的onResume()方法和内软如果仅为此活动调用onPause()方法,并且我回到此活动,则键盘会显示出来。但是在这种情况下,调用了此活动的onStop()方法。当我再次返回到此活动时,onResume()被调用,但没有显示软键盘。

InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMethodManager.showSoftInput(this.getCurrentFocus(), InputMethodManager.SHOW_IMPLICIT); 

我用下面的代码中的onResume()方法,而不是上面提到的一个显示软键时也被调用的onStop()为该活动。

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

尝试{ InputMethodManager inputMethodManager =(InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); (例外e){ e.printStackTrace(); }