当前位置: 代码迷 >> Android >> 请教每个事件处理方法最后的return true/false是什么意思
  详细解决方案

请教每个事件处理方法最后的return true/false是什么意思

热度:110   发布时间:2016-05-01 22:02:43.0
请问每个事件处理方法最后的return true/false是什么意思
请问每个事件处理方法最后的return true/false是什么意思

例如:

Java code
et = (EditText) findViewById(R.id.et);        et.setOnKeyListener(new EditText.OnKeyListener() {            @Override            public boolean onKey(View v, int KeyCode, KeyEvent event) {                // TODO Auto-generated method stub                if (event.getAction() == KeyEvent.ACTION_DOWN                        && KeyCode == KeyEvent.KEYCODE_ENTER) {                    Toast.makeText(GravityActivity.this, "你按键了",                            Toast.LENGTH_SHORT).show();                    return false;                }                return false;       //这里是什么意思            }        });


------解决方案--------------------
看完楼上的回答能明白的就牛逼了。
我说的简单点,android里面的按键事件都是一层一层分发的,每一次处理都默认的调super方法,这样就能保证能一层一层下去。如果你重写按键事件,显示的return true,就表示你消耗掉了这个按键事件,消息发到你这里被消耗掉,不再往下发。return false 则是没有消耗这个按键并不是不处理,你可以写个demo,实际上还是处理了的,只是不会继续分发,因为已经被你return掉了。
原则上应该是这样的,你需要处理的按键你就return true,不需要处理的按键事件就return super.XXX这样你不要处理的按键可以继续发下去。
  相关解决方案