代码改变世界

事件的传播顺序

2015-03-19 09:39  徐亮  阅读(189)  评论(0编辑  收藏  举报

public class MyButton extends Button
{
    public MyButton(Context context , AttributeSet set)
    {
        super(context , set);
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        super.onKeyDown(keyCode , event);
        Log.v("-MyButton-" , "the onKeyDown in MyButton");
        return false;
    }

class MyActivity{

myButton.setOnKeyListener(new OnKeyListener()
        {
            @Override
            public boolean onKey(View source
                    , int keyCode, KeyEvent event)
            {
                    Log.v("-Listener-", "the onKeyDown in Listener");
                }
                return false;
            }
        });

 

  public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        super.onKeyDown(keyCode , event);
        Log.v("-Activity-" , "the onKeyDown in Activity");
        return false;
    }

}

android系统最先触发的是按键上绑定的监听器

然后触发按键的回调

最后触发activity上的回调