在利用Robotium做功能自動化測試的時候,常常由於一些EditText等的虛擬鍵盤彈出問題,導致額外的工作量來處理虛擬鍵盤的問題。 現在指定一種處理虛擬鍵盤的方法: InputMethodManager: Central system API to the overall input method framework (IMF) architecture, which arbitrates interaction between applications and the current input method. You can retrieve an instance of this interface with Context.getSystemService(). InputMethodManager是用來控制IME的:
Java代碼 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 用: Java代碼 if (imm.isActive()) 來檢查虛擬鍵盤是不是在開啟的狀態 然後可以用toggle方法來關閉它 Java代碼 imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS); 當然如果當前虛擬鍵盤是關閉的, toggle就會開啟鍵盤. InputMethodManager也有獨立開啟和關閉的方法: Java代碼 imm.showSoftInput(view, flags); imm.showSoftInputFromInputMethod(token, flags); imm.hideSoftInputFromInputMethod(token, flags);
在robotium種如此處理: InputMethodManager imm = (InputMethodManager) solo.getCurrentActivity().getSystemService(Context.INPUT_METHOD_SERVICE); assertTrue(imm.isActive()); |