android 4.1.2的如何屏蔽掉Home键?
3个回答
展开全部
可以在onCreate方法的setContentView下面加入如下代码,
//settings for catch the home key
Window win = getWindow();
WindowManager.LayoutParams lp = win.getAttributes();
lp.flags |= WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED; //0x80000000 should be replaced by WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED
win.setAttributes(lp);
重写onKeyDown方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KEYCODE_HOME){
return true;
}
}
编译通过后,问题可以解决。
//settings for catch the home key
Window win = getWindow();
WindowManager.LayoutParams lp = win.getAttributes();
lp.flags |= WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED; //0x80000000 should be replaced by WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED
win.setAttributes(lp);
重写onKeyDown方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KEYCODE_HOME){
return true;
}
}
编译通过后,问题可以解决。
展开全部
重写onKeyDown方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KEYCODE_HOME){
return true;
}
}
KEYCODE_HOME就是home键,KEYCODE_HOME的值在KeyEvent 中定义的。
这样既搞定了。
onKeyDown是View中的方法,需要覆写下来,(继承EditText也可以)
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KEYCODE_HOME){
return true;
}
}
KEYCODE_HOME就是home键,KEYCODE_HOME的值在KeyEvent 中定义的。
这样既搞定了。
onKeyDown是View中的方法,需要覆写下来,(继承EditText也可以)
更多追问追答
追问
我的是4.0.3的,重写Home键貌似没用
追答
1、我的是4.0.3的,重写Home键貌似没用?你说的什么意思?
2、上面的方法的重点是 return true;就是说,当点击home键时,就直接返回,不往下层传递事件,所以就屏蔽掉了home键。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你重写home键就可以了,重写什么都不干。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询