這個也是累人,網上查了很多方法,沒有實現需求。
最后的實現方法很簡單。代碼:
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,則表示輸入法打開
我用的是搜狗輸入法。不知道其他的怎么樣。
希望對大家有幫助。
本文原創,轉載注明出處!
