0

我想在android中控制箭头键事件。我正在三星I5500手机上测试该应用程序。该应用程序由标签组成。我成功地使用听众捕捉事件。在android中处理箭头键

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    Log.i(TAG_NAME, "key event: " + keyCode); 
    if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { 
     Log.i(TAG_NAME, "Directional centre pad pressed"); 
    } 
} 

例如,在第三个标签的活动包含的3项

Item A 
Item B 
Item C 

我使用向右箭头导航到第三选项卡并点击向下箭头以选择上面的项目之一的列表视图。单击DPAD_CENTER键触发附加到listView的ItemClick侦听器。一切都很好,直到现在。但是,之后,当前选项卡焦点将移至主页(选项卡0)。试图呈现UIfail的适配器,因为它位于不同的选项卡中。最终它崩溃了。

有没有人遇到过这个?我在互联网上搜索。我没有找到足够的东西。

回答

0

如果您正在寻找使用DPAD键来查找不同UI项目的焦点,那么您应该设计您的XML布局以了解要关注哪个视图。请参阅http://developer.android.com/reference/android/view/View.html#FocusHandling

您需要为每个元素指定nextFocusUp/nextFocusDown/nextFocusRight/nextFocusLeft。

对于ListViews和Tabs,存在一个默认实现,并且出于同样的原因,您可以向下滚动列表视图。 (使用AIR鼠标/ dpad控制器等)