记一次Android ListView没有成功显示出来的原因

本文记录了一次在Android开发中遇到的ListView无法显示数据的问题,问题根源在于对Java值传递的理解不准确。在使用自定义Adapter时,先用空列表创建Adapter,然后从服务器获取数据并尝试更新,但因Java值传递特性,原始列表并未被实际更新,导致ListView未显示数据。解决方案是确保Adapter的数据源始终指向包含正确数据的列表。
摘要由CSDN通过智能技术生成

昨天出于一些原因改写了之前一个项目的Listview的数据获取方式,结果数据是有的,而ListView却死活没有将数据显示出来。调试了很久,把数据一个一个Log出来,怎么看都觉得构造Adapter的list里面是有数据的。后来才发现自己犯了一个低级错误,这跟Java值传递方式有关,所以基础要扎实的原因就是这这么来的。


我们知道在使用自定义的Adapter的时候一般是需要在构造方法内传一个集合作为数据来源。比如下面是自定义的CommentAdapter的构造函数:

	public CommentAdapter(List<CommentEntity> cmList) {
		cmDataList = cmList;
	}


由于需要从服务器加载数据,我先用一个空的commentDataList构造Adapter,等从服务器加载完数据后再调用notifyDataChanged()来刷新数据显示。

在Activity先这么写:

第一步:

mAdapter = new CommentAdapter(commentDataList); //空的commentDataList
mListView.setAdapter(mAdapter);

这一以来,CommentAdapter中的cmDataList这个变量就指向了Activity中的commentDataList这个变量所指向的内存空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值