代码之家  ›  专栏  ›  技术社区  ›  Andrew

OnTrackBalleEvent没有向三星Moment开火

  •  1
  • Andrew  · 技术社区  · 15 年前

    我的应用程序中有一个列表。

    当用户用手指触摸列表项时,onListItemClick处理程序将触发,我让它打开一个新活动。

    但是,当用户使用trackball/pad单击时,我想执行一些不同的功能。我已经超越了onTrackballEvent,在模拟器的trackball模式下一切都工作得很好。

    不幸的是,在Samsung Moment上测试时,单击轨迹板会触发onListEmclick处理程序,而不是OnTrackBalleEvent处理程序。

    有人知道为什么吗?有人能解决这个问题吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Labeeb Panampullan    15 年前

    在listview中,您可以设置keyListener,并在keycode为KeyEvent.keycode_DPAD_CENTER时进行编码

    listview.setOnKeyListener(new OnKeyListener() {
    
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                   switch(keyCode){
                     case KeyEvent.KEYCODE_DPAD_CENTER:
                        if(event.getAction()==KeyEvent.ACTION_UP){ //to do it only when key is released 
                       // do the code while trackball/pad is clicked
                        }
                       return true;
                     default:
                        return false;
                     }
                  }
             }
    });
    

    对我有用。希望这能给你一些建议

        2
  •  -1
  •   Vuk    15 年前

    尝试重写 dispatchTrackball 事件并抓住那些事件。另外,只是一个建议-我不会对trackball使用不同的操作,因为并不是所有的Android手机都有trackball。

    推荐文章