ListView中geiView调用的数组边界溢出问题

在为ListView设置适配器时遇到数组溢出异常。问题关键在于getView的position参数超出了getCount返回的边界。getCount应返回adapter数据集合的大小,而getView循环加载item时基于此值。当position超出这个范围,就会引发异常。解决办法是确保getCount正确返回数据集的大小。

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

问题出现在给ListView加载适配器的时候,提示数组溢出异常。


1. ListView中adapter

(1)ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。

    (2)一个新的视图被返回并显示。


getView的参数解释:

position——表示在屏幕上显示的item,也可以表示数据集中item,一般来说,屏幕显示item和数据集是一一对应的,getView循环加载,我的错误加发生在position边界溢出,溢

出原因出在getCount身上。

covetView——表示刚刚移出屏幕的那个item,这个item不在屏幕中,但为了优化效率,保留其View,当其再次回到屏幕中时,可以直接加载数据,不必绘制View。

parent——父布局


更多关于getView的知识,参考:

http://blog.youkuaiyun.com/kongzhichen/article/details/10721197


2. getCount

getView加载item的个数取决于getCount的返回值,一般情况下,getCount返回adapter数据集合的个数。

public int getCount() {
		return classroomList.size();
	}

我的错误数组溢出,就是返回值设置错误导致,其实比较低级的错误了,主要是没真正搞清楚ListView的加载方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值