我正在尝试为触摸事件的视图显示软输入键盘。 这条线有效:
inputManager.toggleSoftInputFromWindow(getWindowToken(),0,0);
但这条线不起作用:
inputManager.showSoftInput(this,0);
为什么会这样?如果我想将软输入连接到视图怎么办? 感谢。
答案 0 :(得分:5)
我认为你在模拟器上进行测试。不是真正的设备?
它不会在AVD上打开keyboard
,但它会在真实设备上打开,而该设备没有Hard key board
。
要在AVD
上进行测试,您需要禁用键盘。
禁用键盘使用
Click on AVD manager > open you targeted AVD > Edit > Hardware > New > Keyboard Support > OK > Make it "NO"
答案 1 :(得分:3)
试试这个:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
答案 2 :(得分:2)
在onclick事件中尝试此操作。
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
InputMethodManager.HIDE_IMPLICIT_ONLY);
答案 3 :(得分:2)
showSoftInput()
有焦点,否则 View
无法工作。此外,除非您先致电requestFocus()
和/或View
为真,否则致电setFocusableInTouchMode()
不会给您setFocusable()
焦点。
答案 4 :(得分:0)
您需要先请求焦点并显示如下软输入:
mEditTextStudy.requestFocus();
mEditTextStudy.post(
new Runnable() {
@Override
public void run() {
InputMethodManager imm =
(InputMethodManager)
getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.showSoftInput(mEditTextStudy, SHOW_FORCED);
}
}
});