今天刚解决的一个issue,二级列表中包含checkbox,对其进行监听并记录状态。为避免内存泄漏,在getview()中进行了判断
if(v==null){v=....;}
如果不判断当数据过多时会出现oom。哪怕你只是为每个item初始化一次,即
if(v==null||v.gettag(..)!=...){v=..};
也会出现oom。
问题,checkbox的选中状态会随着item移出屏幕而重新变为未选中状态。
为此,为checkbox添加setOnCheckedChangeListener来记录状态,当此checkbox随item移出屏幕后会出发此监听,记录状态不准确。
改为添加click监听,来记录状态。记录准确。