静态属性遇到的坑

今天再做一个功能的时候,遇到的坑,记录一下。
在一个类中定义了一个静态属性:
public class DangerData {
public static List<DangerDeviceDatas> deviceDataList = new ArrayList<DangerDeviceDatas>();

}

然后在另外一个类中调用此属性,给静态属性赋值了.
if (DangerData.deviceDataList != null && !DangerData.deviceDataList.isEmpty()) {
deviceDataList.addAll(DangerData.deviceDataList); //正确做法
//showDevice(DangerData.deviceDataList); //如果直接将静态属性值传到方法的话,debug的时候看到DangerData.deviceDataList是有值但是,方法中执行adapter的时候,getView方法不会执行,getCount也是不为0的,百度找了很久看到的解决方案都不适用我这 里。后来问了同事,说应该是在执行showDevice(DangerData.deviceDataList);方法的时候,已经执行了方法后DangerData.deviceDataList.clear();方法,所以才没有执行getView的。最后先new一个集合,将静态属性addAll进去,调用 showDevice方法的时候传new出来的集合过去,就没问题了。
showDevice(deviceDataList); 
 DangerData.deviceDataList.clear(); //清空静态属性

}
然后在一个方法中调用了此静态属性。
private void showDevice(List<DangerDeviceDatas> deviceData) {
adapter = new ShowDangerDeviceListAdapter(mActivity, deviceData);
viewHolder.getLvShowDevice().setAdapter(adapter);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值