1、 需求:
当用户利用上下键在ListView中进行选择时,如果用户想快速选择第一行或者最后一行;或者当用户选择最后一行时想不必返回,向下移动就可以选择第一行;或者当用户选择在第一行时,直接向上移动就可以选择最后一行,这就是在ListView中item的循环显示。
2、 原理
1、 实现OnItemSelectedListener接口,给ListView注册setOnItemSelectedListener监听器
2、 定义一个临时ID用于保存用户当前选中的item
3、 通过onKeyDown()捕捉ACTION并判断是向上还是向下选择
4、 根据ID和ListView中item的个数设定ListView的焦点位置
3、 代码
1、private int lastItemSelect = 0;
2、listView.setOnItemSelectedListener(this);
3、
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int index,
long arg3) {
lastItemSelect = index;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
3、
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println(keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
if(lastItemSelect==0){
listView.setSelection(bookAdapter.getCount()-1);
return true;
}
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
if(lastItemSelect>=bookAdapter.getCount()-1){
listView.setSelection(0);
return true;
}
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
4、 结果
Everything goes well!
- 相关文章
- 【转】修改android开机画面 (37人浏览)
- 关于Android锁屏的问题 (36人浏览)
- android横竖屏和隐藏标题栏、状态栏总结 (35人浏览)
- android设置一个图片缩放为全屏大小 (39人浏览)
- Android UI学习 - GridView和ImageView的使用 (8人浏览)
- 如何android字符中动态的显示数字 (61人浏览)
- Ubuntu 10.04 编译 android 1.5 源码出错问题解决 (13人浏览)