ListView 内容之分批显示

本文介绍了一种自定义BaseAdapter的方法来优化ListView显示大量数据的用户体验,通过限制显示数据的数量并分批滚动,避免用户长时间滚动寻找特定数据项的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.  最后一页数据

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值