这个也是累人,网上查了很多方法,没有实现需求。
最后的实现方法很简单。代码:
1 //通过定时器强制打开虚拟键盘 2 public static void TimerShowKeyboard(final View v) 3 { 4 Timer timer = new Timer(); 5 timer.schedule(new TimerTask(){ 6 @Override 7 public void run() 8 { 9 InputMethodManager imm = ( InputMethodManager ) v.getContext().getSystemService( Context.INPUT_METHOD_SERVICE ); 10 if (!imm.isActive(v)){ 11 imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 12 } 13 } 14 }, 10); 15 }
其他方法都用过,没有这个爽!用过的比如有:
// if (!imm.isActive(et_fundvalue)){ // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); // }
或者:
// if (!imm.isActive()){ // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); // }
再或者:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
继续:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
还有这个返回值有问题:
1 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 2 boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开
我用的是搜狗输入法。不知道其他的怎么样。
希望对大家有帮助。
本文原创,转载注明出处!