我有一个要求:当选择最后一个项目时,如果按下KEYCODE_DPAD_DOWN
,则跳转到第一个项目;选择第一个项目时,按下KEYCODE_DPAD_UP
时跳转到最后一个项目。
我有一种实现方法:
//1. record the last selected item position:
this.getListView().setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
lastItemselected = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
// 2. add listener to key down
public boolean onKeyDown(int keyCode, KeyEvent msg){
if(keyCode == msg.KEYCODE_DPAD_DOWN){
if(lastItemselected == data.length - 1 ){
this.getListView().setSelection(0);
}
} else if(keyCode == msg.KEYCODE_DPAD_UP){
if(lastItemSelected == 0){
this.getListView().setSelection(data.length - 1);
}
}
return false;
}
由于我可能有很多ListView
,我需要在我的项目中多次重复这些代码,那么ListView
中的任何属性是否都能满足此要求?
答案 0 :(得分:0)
所以ListView中的任何属性都能满足这个要求吗?
ListView中没有可用于在点击行之间跳转的属性。
我需要在我的项目中多次重复这些代码
不是多次重复代码,而是使用方法创建一个实用程序类,该方法将ListView,位置,数据源大小和键事件作为参数。