TV 开发ListView 焦点上下循环切换

ListView  切换逻辑:

                  1、获取ListView的可选择的总范围,getSelectedItemPosition();

                  2、找出当前选择的位置,监听OnKeyListener判断位置是在第一个item 还是在最后一个item,第一个则setSelection("位置");设置到最后一个;

光标在最后一个则设置给第一个:

        private int position=0; 

        private ListView listveiw;

        private ArrayList<Data>  data;

-------------------------------------------------------------------

       

     //监听事件

     @Override
    public boolean dispatchKeyEvent(KeyEvent event) {

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

             position=listview.getSelectedItemPosition();

                 switch (event.getKeyCode()) {
                    case KeyEvent.KEYCODE_DPAD_DOWN:
                        if(position == data.size()-1){
                            listveiw.setSelection(0);
                            return true;
                        }
                        break;
                    case KeyEvent.KEYCODE_DPAD_UP:
                        if(position == 0){
                            listveiw.setSelection(data.size()-1);
                            return true;
                        }
                        break;
                    default:
                        break;
                }

        }

}

 

          

    

 

 

 

 

                  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值