在做查询时,改观EditText弹出软键盘后,焦点没有落在EditText上,此时输入什么都不能回显在EditText中。
以下解决方法:
Timer myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
showSoftKeyboard(DictActivity.this, mEtSearch);
Message msg = updateBarHandler.obtainMessage();
msg.what = 1;
updateBarHandler.sendMessageDelayed(msg, 500);
}
},200);
public void showSoftKeyboard(Activity activity, View v)
{
InputMethodManager imm=(InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
//imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
imm.showSoftInput(v, 0);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
Handler updateBarHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 1){
mEtSearch.requestFocus();
}
}
};
//////////////////////////////////////////////
定时器启动软键盘后,给handle延时发一个消息,由handle来处理EditText焦点问题,原因可能是键盘或其它元素占用了此窗口的焦点,因此需要延时处理EditText焦点
阅读(3473) | 评论(0) | 转发(0) |