关于隐藏、显示虚拟键盘的问题:
(1)初始化InputMethodManager对象:
mImm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
private void hideSoftInput(IBinder windowToken, int flag) {
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
mImm.hideSoftInputFromWindow(windowToken, flag);
}
(3)显示虚拟键盘函数:
private void showSoftInput(View view, int flag) {
view.setFocusableInTouchMode(true);
view.requestFocus();
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
mImm.showSoftInput(view, flag);
}
当首次启动activity时,可以直接在onCreate中调用showSoftInput()方法;
非首次启动(比如说activity失去焦点,进入后台,然后再获取焦点),在onResume中作如下处理:
EditTextObject.postDelayed(new Runnable() {
@Override
public void run() {
//showSoftInput()方法;
}
}, int delayTime);