请问每个事件处理方法最后的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这样你不要处理的按键可以继续发下去。