android 机顶盒开发-----GridView

简单描述一下要实现的:遥控器控制GridView右键到第一横最后一个item再次右键跳转到第二横的问题

正常情况下,机顶盒GridView中的Item中的控件获取不到焦点,焦点都是在Item上

当GridView中的子Item里面的控件需要获取焦点时,设置GridView的属性android:descendantFocusability="afterDescendants"
这样GridVIew中的子Item中的控件就能获取到焦点了

一个按键有两个触发点,一是up,一是down,如果需要指定焦点,使用view.requestFocus(),而且需要在down上执行,因为up时,系统已经定位新的焦点了.再执行就未必是想要的结果. 

 重写系统的的方法:

@Override
 public boolean dispatchKeyEvent(KeyEvent event) {

  int keyCode=event.getKeyCode();  

         if (event.getAction()==KeyEvent.ACTION_UP) {  

         up事件,这里多数情况不需要处理.  

 } else {down事件  

          或许可以直接覆盖onKeyDown方法,而不是这个.    

          if(keyCode==KeyEvent.KEYCODE_DPAD_UP){  

      } else if (keyCode==KeyEvent.KEYCODE_DPAD_LEFT) {  

           //处理事件

          return true;//该事件已被处理,flase调用系统方法

      } else if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) {  

           //处理事件

          return true;

 } else if (keyCode==KeyEvent.KEYCODE_DPAD_DOWN) {  

      } else if (keyCode==KeyEvent.KEYCODE_DPAD_CENTER||keyCode==KeyEvent.KEYCODE_ENTER) {  

    }  

return super.dispatchKeyEvent(event);
 
}

这是主要处理的遥控器的几个方向,

此方法对该事图层有用

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值