ViewFlipper上,通过onKeyDown不能获取enter键的解决办法
安卓电视盒软件定制:www.dfsuiren.com
在ViewFlipper下,通过onKeyDown不能获取enter键。这个问题,搞晕我好几天了。在ViewFlipper的方法里应该在onKeyDown之前获取到了enter键。然后直接跳过onKeyDown方法。最后我使用dispatchKeyEvent,重写这个方法,就可以获取enter键。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER ) {
//TODO 代码
Intent video_intent1 = apk.get_desk_intent(1);
if(video_intent1!= null)
startActivity(video_intent1);
return true;//注意这儿返回值为true时该事件将不会继续往下传递,false时反之。根据程序的需要调整
}
return super.dispatchKeyEvent(event);
}
dispatchKeyEvent和onKeyDown关系:
当键盘按下时
首先触发dispatchKeyEvent
然后触发onUserInteraction
再次onKeyDown
如果按下紧接着松开,则是俩步
紧跟着触发dispatchKeyEvent
然后触发onUserInteraction
再次onKeyUp
dispatchKeyEvent是做分发的工作,如果你想要onKeyDown还可以接收到应该这样实现
public boolean dispatchKeyEvent(KeyEvent event){return super.dispatchKeyEvent(event);
}