Android ListView 适配键值事件和点击事件
2015-09-28 15:21
232 查看
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
这个是因为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
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories