从软键盘拦截后退按钮我有几个输入字段的活动。当活动开始时,显示软键盘。当按下后退按钮软键盘关闭并关闭活动时,我需要再次按下后退按钮。所以问题是:是否有可能拦截后退按钮关闭软键盘并在一次按下后退按钮完成活动而不创建自定义InputMethodService?PS我知道如何在其他情况下拦截后退按钮:onKeyDown()或者onBackPressed()在这种情况下它不起作用:只有第二次按下后退按钮被拦截。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
我发现,覆盖Layout类的dispatchKeyEventPreIme方法也很有效。只需将主Activity设置为属性并启动预定义方法即可。
public class LinearLayoutGradient extends LinearLayout {
MainActivity a;
public void setMainActivity(MainActivity a) {
this.a = a;
}
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (a != null) {
InputMethodManager imm = (InputMethodManager) a .getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive() && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
a.launchMethod;
}
}
return super.dispatchKeyEventPreIme(event);
}}- 3 回答
- 0 关注
- 467 浏览
添加回答
举报
0/150
提交
取消
