
android中,onkeydown函数return false和return true的区别
3个回答
展开全部
说的简单点,android里面的按键事件都是一层一层分发的,每一次处理都默认的调super方法,这样就能保证能一层一层下去。如果你重写按键事件,显示的return true,就表示你消耗掉了这个按键事件,消息发到你这里被消耗掉,不再往下发。return false 则是没有消耗这个按键并不是不处理,你可以写个demo,实际上还是处理了的,只是不会继续分发,因为已经被你return掉了。
原则上应该是这样的,你需要处理的按键你就return true,不需要处理的按键事件就return super.XXX这样你不要处理的按键可以继续发下去。
一般SDK中对系统的函数都是有返回值的说明,因为大部分系统函数都应该返回父类的函数返回值,比如onTouch事件就是如此,返回true就是代表你已经自己处理了,不需要系统处理,反之则应该返回父类的ontouch。返回true的时候表示事件已经完整的执行完毕了,不再执行其他的回调函数,返回false表示并未完全处理完该事件还会继续调用其他回调函数。
例如:
return super.onCreateOptionsMenu(menu);就是把super.onCreateOptionsMenu(menu)的执行结果原封不动的返回,是true还是false由父类的返回值绝对。
api中很多地方写了以onkeyup为例
通俗一点讲
return true表示你自己已经做了实现,不需要父类的实现。如果你只实现了left那么你return true,就会导致其他按键menu,right...的事件不可用。
原则上应该是这样的,你需要处理的按键你就return true,不需要处理的按键事件就return super.XXX这样你不要处理的按键可以继续发下去。
一般SDK中对系统的函数都是有返回值的说明,因为大部分系统函数都应该返回父类的函数返回值,比如onTouch事件就是如此,返回true就是代表你已经自己处理了,不需要系统处理,反之则应该返回父类的ontouch。返回true的时候表示事件已经完整的执行完毕了,不再执行其他的回调函数,返回false表示并未完全处理完该事件还会继续调用其他回调函数。
例如:
return super.onCreateOptionsMenu(menu);就是把super.onCreateOptionsMenu(menu)的执行结果原封不动的返回,是true还是false由父类的返回值绝对。
api中很多地方写了以onkeyup为例
通俗一点讲
return true表示你自己已经做了实现,不需要父类的实现。如果你只实现了left那么你return true,就会导致其他按键menu,right...的事件不可用。
展开全部
在android中,常用return false来阻止提交表单或者继续执行下面的代码,通俗的来说就是阻止执行默认的行为。 例如下面的例子:
(1)、
function s1(){
if(true)
{
return false;
}
},这是没有任何问题的。
(2)
function s2(){
m();
n();
p();
}
即使m函数返回return false 阻止提交了,但是不影响 n()以及 p()函数的执行。在s2()函数里调用m()函数,那面里的return false 对于s2()函数来说,只是相当于返回值。而不能阻止s2()函数执行。 return false 只在当前函数有效,不会影响其他外部函数的执行。
总的来说在js中对于return用法的三种情况的总结如下:
retrun true; 返回正确的处理结果。
return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为。
return;把控制权返回给页面。
(1)、
function s1(){
if(true)
{
return false;
}
},这是没有任何问题的。
(2)
function s2(){
m();
n();
p();
}
即使m函数返回return false 阻止提交了,但是不影响 n()以及 p()函数的执行。在s2()函数里调用m()函数,那面里的return false 对于s2()函数来说,只是相当于返回值。而不能阻止s2()函数执行。 return false 只在当前函数有效,不会影响其他外部函数的执行。
总的来说在js中对于return用法的三种情况的总结如下:
retrun true; 返回正确的处理结果。
return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为。
return;把控制权返回给页面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
return false //返回为假既0
return true //返回为真既非0
return true //返回为真既非0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |