Android ListView 适配键值事件和点击事件

1.当使用硬按钮和手指点击同时操作listView的时候,焦点的问题会让人很纠结,如果想做好与用户的交互就更不容易了,
    这个是因为Android在touch模式的时候不涉及到焦点的概念,尽管相应的方法来设置这个模式也有焦点(setFocusIntouchMode),
     但是在时间的开发中还是不能很好的满足很多要求

2.写几点开发适配listView焦点的心得吧
   2.1首先是要先写好ListView条目view的Selector,这个很重要,然后还要在XML定义ListView的地方写号Androd:ListSelector
   2.2要监听ListView的OnClickListener和OnItemSelectListener事件,在事件中将当前选中或点击的position记录下来,通过
        适配器中的setpositon方法,将这个position传递给listviewadapter,然后要在getview方法中判断当前postion和传递进来的
      positon是否相等做background的设置

3.要执行getview方法就要在OnClickListener和OnItemSelectListener监听事件中调用adapter的notifydatasetchanged方法

4.在Activity的onResume方法中模拟一次向下的键值事件,这个是因为点击listview条目后再返回listview焦点失去了,你再按
    向下键就是要两次才有效,第一次是捕获焦点
                Runtime runtime=Runtime.getRuntime();
               runtime.exec("input keyevent " + 20);

4.模拟键值:adb shell input keyevent "int键值"


5.凌乱原创参考DEMO: https://github.com/lycasa/ListViewTest
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值