InputMethodManager imm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
/*这句话是获得输入法管理器,在非Activity类里面需要通过
* (InputMethodManager)getContext.getSystemService(Context.INPUT_METHOD_SERVICE)获得;
*Context.INPUT_METHOD_SERVICE指的是系统服务,类似的还有:电源Context.POWER_SERVICE;
* 键盘锁Context.KEYGUARD_SERVICE等
*/
imm.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
/*调用一次这句话,可使隐藏的输入法显示,显示的输入法隐藏。
*
*/
imm.showSoftInput(this,InputMethodManager.SHOW_IMPLICIT);
/*这里的this传入的值是View类型,而不是Activity类型
*这句话单独使用有可能会没有效果,一般只有在第一次显示过输入法后,再调用这句话才会有效果
*/
imm.hideSoftInputFromWindow(this.getWindowToken(), 0);
/*这句话用来隐藏输入法
*this传View类型
*/
现在我遇到了一个问题:如果从未使用过输入法,调用showSoftInput方法并不能显示输入法,而调用toggleSoftInput可以显示输入法。在使用EditText系统自动显示过输入法后,showSoftInput方法就会起作用了。