ListView 内容循环显示
大家试想 假如ListView待显示的数据很庞大 从0-100 如果按照ListView默认行为 用户要找到50记录 可能要滚动很久
这显然会影响用户体验 本文的宗旨:解决这一问题
[思路]
思路很简单
1. 自定义BaseAdapter
2. 其 getCount() 返回一个固定值 比如:5 那么ListView就会只显示5个记录
3. 其 getView() 必须返回0-100记录 但需要分批显示 那如何实现呢?
定义 int index = 0; 用于记录显示当前数据的次序 用户显示下批数据 那么index++ 反之 显示以前 就index--
即: BaseAdapter 应该类似于这种形态 这仅仅是示例
public class ItemAdapter extends BaseAdapter {
Activity a;
String[] data = {
//.......
};
@Override
public int getCount() {
// TODO Auto-generated method stub
return 5;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView tv = new TextView(a);
tv.setText(data[position+index*VIEW_COUNT]);
return null;
}
}
但是 会有一些别的问题
1. 当数据已经取到最后一批 那么应该使"向下翻页"Button 反白 即:不可单击
2. 同理 若此前目标是第一批数据 "向上翻页"Button 也应该反白
不说了 这个问题 牵扯的东西太多 我也解决了一些 现释放代码 对该问题感兴趣的可以下载运行看看
仅补贴图
1. 第一页数据
2. 最后一页数据