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(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
ID = arg2;
}
@Override
public 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!