有没有更好的方法来制作“ListView”回收展示项目?

时间:2015-01-16 03:32:36

标签: android listview android-listview

我有一个要求:当选择最后一个项目时,如果按下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中的任何属性是否都能满足此要求?

1 个答案:

答案 0 :(得分:0)

  

所以ListView中的任何属性都能满足这个要求吗?

ListView中没有可用于在点击行之间跳转的属性。

  

我需要在我的项目中多次重复这些代码

不是多次重复代码,而是使用方法创建一个实用程序类,该方法将ListView,位置,数据源大小和键事件作为参数。