我想在android中控制箭头键事件。我在三星I5500手机上测试应用程序。该应用程序包含选项卡。我成功地使用听众捕获事件。
@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)。尝试呈现UI失败的适配器,因为它位于不同的选项卡中。最终它崩溃了。
以前有没有人经历过这个?我在网上搜索过。我找不到足够的价值。
答案 0 :(得分:0)
如果您正在使用DPAD键查找对不同UI项目的关注,那么您应该设计XML布局以了解要关注的视图。见http://developer.android.com/reference/android/view/View.html#FocusHandling
您需要为每个元素指定nextFocusUp / nextFocusDown / nextFocusRight / nextFocusLeft。
对于ListViews和Tabs,存在一个默认实现,出于同样的原因,您可以向下和向上滚动列表视图。
遵循这些指南将使您的应用对DPAD事件更具响应性,并提供无与伦比的用户交互(使用AIR鼠标/ dpad控制器等时)