您的位置:首页 > 其它

隐藏输入法并退出当前的Activity

2011-09-18 07:51 399 查看
在当前的Activity弹出输入法框的时候,按下返回键,输入框消失,而不会退出当前的Activity,在有些时候,我们可能需要退出当前的Activity,可以重写dispatchKeyEventPreIme()方法来做到这一点:

@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
	Activity a = getActivity();
	if (null != a && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
		if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
			return super.dispatchKeyEventPreIme(event);
		} else if (event.getAction() == KeyEvent.ACTION_UP) {
			hideInputMethod();
			a.finish();
			return true;
		}
	}
	return super.dispatchKeyEventPreIme(event);
}


隐藏输入法:

protected void hideInputMethod() {
	InputMethodManager imm = (InputMethodManager)getContext()
		.getSystemService(Context.INPUT_METHOD_SERVICE);
	if (null != imm) {
		imm.hideStatusIcon(getWindowToken());
	}
}


获取到Activity"

private Activity getActivity() {
	Context c = getContext();
	if (c != null && c instanceof Activity) {
		return (Activity)c;
	}
	return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: