嗨我正在尝试输入这段代码来隐藏android上的软键盘,但是它返回一个空指针。
代码:
public void testSetTestEnvironment (){
solo.clickInList(4);
solo.clickOnMenuItem(ConfigVariables.CATALOGSERVER);
assertTrue(solo.searchText(ConfigVariables.CATALOGSERVERURL));
//Enter KeyCode
solo.clickInList(5);
View myEditText = solo.getViews().get(0);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
solo.enterText(solo.getEditText(0), "");
solo.enterText(0, ConfigVariables.KEYCODE);
assertTrue(popupClickButtonHandler("Enter KeyCode", "OK"));
日志显示:
显示java.lang.NullPointerException
感谢。
答案 0 :(得分:4)
也许有点太晚但我希望这对某人有帮助。 您的代码很容易出错,因为它依赖于焦点视图来获取窗口令牌。
尝试使用:
InputMethodManager im = (InputMethodManager) this.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
此代码适用于我。
摘自this answer <{3}}