ListView 中 item 循环显示
ListView 中 item 循环显示
?
?
[功能]
何谓循环显示 即
1. 此刻的 item 为最后一个 当继续往下翻的话 就会回到第一个
2. 而此刻的 item 是第一个 当继续往上翻 就会变为最后一个
?
?
[原理]
1. 一个 int ID? 用于保存 选中的 item
2. 通过 onKeyDown() 捕捉ACTION 并判断是 向上 还是 向下
3. 把 二者 进行综合判断 然后设定 焦点
?
?
[代码 步骤]
1. 定义 int ID 并记录 选中的 item id
int ID = 0;this.getListView().setOnItemSelectedListener(new OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {// TODO Auto-generated method stubID = arg2;}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub} });
?
?
2. 通过 onKeyDown 捕捉 keyCode? 假如是自己关心的按键 再根据此刻的 ID? 进行相应的设定
public boolean onKeyDown(int keyCode, KeyEvent msg){ if(keyCode == msg.KEYCODE_DPAD_DOWN){ if(ID == data.length - 1 ){ this.getListView().setSelection(0); } } else if(keyCode == msg.KEYCODE_DPAD_UP){ if(ID == 0){ this.getListView().setSelection(data.length - 1); } } //super.onKeyDown(keyCode, msg);return false; }
?
?
?
done!
?
1 楼 sunburst 2010-02-04 不错,挺好的,学习到了,感谢楼主 2 楼 wafj1984 2010-02-10 什么意思的 3 楼 gryphone 2010-02-10 wafj1984 写道什么意思的