android返回键监听中return false,return true的区别;最好有个例子 10
publicbooleanonKeyDown(intkeyCode,KeyEventevent){//截获按键事件if(keyCode==KeyEvent.KEYCODE...
public boolean onKeyDown(int keyCode, KeyEvent event){
//截获按键事件
if(keyCode == KeyEvent.KEYCODE_MENU){
//退出对话框
}
}
return false;
}
如上:android返回键监听中return false;是什么意思,和return true有什么不同,
只监听一次吗?后续的不再监听?网上说如果返回false则时间不继续传递,也就是不会触发相应的后续事件,我试了下即使return true也可以在退出对话框,后按回车,继续退出主activity,和return false效果一样啊,请帮忙讲解,谢谢! 展开
//截获按键事件
if(keyCode == KeyEvent.KEYCODE_MENU){
//退出对话框
}
}
return false;
}
如上:android返回键监听中return false;是什么意思,和return true有什么不同,
只监听一次吗?后续的不再监听?网上说如果返回false则时间不继续传递,也就是不会触发相应的后续事件,我试了下即使return true也可以在退出对话框,后按回车,继续退出主activity,和return false效果一样啊,请帮忙讲解,谢谢! 展开
3个回答
展开全部
android的onKeyDown函数的返回值是这个意思,假如你返回true就是告诉系统我已经对这个回调进行了处理了,不需要系统再处理了。但是你返回false就是告诉系统,我对这个回调做了处理,但是好像不完善,希望系统再帮我处理一下。比如你写这样一个函数
public boolean onKeyDown(int keyCode, KeyEvent event){ //截获按键事件 if(keyCode == KeyEvent.KEYCODE_BACK{//退出对话框 } } return false; }
你返回false那么久依然会退出这个activity,就是系统调用的返回的处理。但是你要是返回true,那么久不会退出这个activity,就没有系统对返回的处理。
public boolean onKeyDown(int keyCode, KeyEvent event){ //截获按键事件 if(keyCode == KeyEvent.KEYCODE_BACK{//退出对话框 } } return false; }
你返回false那么久依然会退出这个activity,就是系统调用的返回的处理。但是你要是返回true,那么久不会退出这个activity,就没有系统对返回的处理。
追问
不明白,说的好乱,我试过 返回true. 退出对话框, 再按返回键,继续会退出这个activity,和你讲的不一样。 请用事实说话
追答
你把这段代码复制进去吧 我偷了个懒,上个回答我偷了个懒,直接复制的你的
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.e("按了返回了", "但是不退出这个Activity");
return true;
}
return super.onKeyDown(keyCode, event);
}
展开全部
我是这么记的-。-
拿到这个事件之后,舔完了,要不要把这个事件吃掉~
返回true是吃掉,后面的监听就得不到这个事件了-。-
返回false就是不吃,后面的监听还可以再得到这个动作~继续舔~然后判断要不要吃掉...
推荐你看这个文章吧~看完就懂了http://blog.csdn.net/android_tutor/article/details/7193090
拿到这个事件之后,舔完了,要不要把这个事件吃掉~
返回true是吃掉,后面的监听就得不到这个事件了-。-
返回false就是不吃,后面的监听还可以再得到这个动作~继续舔~然后判断要不要吃掉...
推荐你看这个文章吧~看完就懂了http://blog.csdn.net/android_tutor/article/details/7193090
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
android的onKeyDown函数的返回值是这个意思,假如你返回true就是告诉系统我已经对这个回调进行了处理了,不需要系统再处理了。但是你返回false就是告诉系统,我对这个回调做了处理,但是好像不完善,希望系统再帮我处理一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询