Android 显示软输入键盘
我正在尝试显示软输入键盘以查看触摸事件。 这条线路的工作原理是:Android 显示软输入键盘,android,android-view,android-input-method,Android,Android View,Android Input Method,我正在尝试显示软输入键盘以查看触摸事件。 这条线路的工作原理是: inputManager.toggleSoftInputFromWindow(getWindowToken(),0,0); 但这一行行不通: inputManager.showSoftInput(this,0); 为什么会这样?如果要将软输入连接到视图,该怎么办? 谢谢。试试这个: InputMethodManager imm = (InputMethodManager) getSystemService(Context.IN
inputManager.toggleSoftInputFromWindow(getWindowToken(),0,0);
但这一行行不通:
inputManager.showSoftInput(this,0);
为什么会这样?如果要将软输入连接到视图,该怎么办?
谢谢。试试这个:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
在onclick事件中尝试此操作
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
InputMethodManager.HIDE_IMPLICIT_ONLY);
我认为您正在emulator上进行测试。不是在真正的设备上 它不会在AVD上打开
键盘
,但会在没有硬键盘
的真实设备上打开
要在AVD
上测试它,需要禁用键盘
禁用键盘使用
Click on AVD manager > open you targeted AVD > Edit > Hardware > New > Keyboard Support > OK > Make it "NO"
showSoftInput()
将无法工作,除非您的视图具有焦点。此外,除非首先将setFocusableInTouchMode()
和/或setFocusableInTouchMode()
调用为true,否则调用requestFocus()
不会为视图提供焦点 您需要先请求焦点,然后显示软输入,如下所示:
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);
}
}
});
您是在模拟器上测试还是在真实设备上测试?我认为它不会在AVD上打开键盘,但会在设备上打开,而该设备没有硬键盘
,它确实在模拟器上。因此,软输入没有打开的原因是仿真器有硬键盘?我想是的..在没有硬键盘的设备上尝试..有没有办法让仿真器认为没有硬键盘?我想…单击AVD管理器>打开目标AVD>编辑>硬件>新建>键盘支持>确定>设置为“否”只需实现onClickListener onView。然后在onClick中执行此操作。正如我在原始消息中所说,我知道toggleSoftInput可以工作,但我想使用showSoftInput,因为它接受视图参数。我知道toggleSoftInput可以工作,但我想使用showSoftInput,因为它接受视图参数,我想将视图连接到键盘。