貌似在dispatchKeyEvent的时候分配事件,但是在dispatchKeyEvent里应该怎么来分配呢?

解决方案 »

  1.   

    长按事件不是有个方法吗setOnLongClickListener           需要处理onkeydown和onLongClickListener事件  只需要重写这两个方法就OK了~~
      

  2.   

    长按事件是需要有载体的,比如长按button,button就是载体,如果你做全局的长按,那可以分派键值,但是这样的话,你只能在onkeyDown 和onKeyUp之间来判断是否是长按
      

  3.   

    如果要执行长按事件的话,必须先执行event.startTracking(); 然后onKeyLongPress(int, KeyEvent)才能被调到。更多内容 欢迎访问:http://www.drovik.com
      

  4.   

    onkeydown和长按逻辑上不是冲突的吗?
    onkeydown是按下去时就已经触发了吧?长按是按下去等一会才触发吧?那么,在长按事件触发之前就已经先触发了onkeydown事件了。
      

  5.   

    是说在dispatchkeyevent里先执行event.startTracking(); 然后才super.dispatchKeyEvent(event)?
      

  6.   


    先执行super再执行 event.startTracking(); 
      

  7.   


    假定你要执行长按enter键的事件, 你可以这样子做:
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
         super.onKeyDown(keyCode, event);
         if(keyCode == KeyEvent.KEYCODE_ENTER){
             event.startTracking();
         }
    }@Override
    public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    return super.onKeyLongPress(keyCode, event);
    }这样子你的onKeyLongPress方法就会被执行到了。希望能对你有用!