android中notifyDataSetChanged无效怎样解决
当调用notifyDataSetChanged()
方法无效时,可以尝试以下解决方法:
确保在调用notifyDataSetChanged()
之前,数据集已产生了变化:notifyDataSetChanged()
方法只会刷新数据集中的数据,如果数据集没有产生改变,调用该方法也不会有任何效果。
确保调用notifyDataSetChanged()
方法在主线程中:Android中的UI更新一定要在主线程中进行,如果在子线程中调用notifyDataSetChanged()
方法,该方法将无效。可使用runOnUiThread()
方法还是Handler
将notifyDataSetChanged()
方法放在主线程中履行。
确保适配器对象没有重新创建:如果在数据集产生变化时重新创建了适配器对象,那末之前绑定的数据集和适配器对象已失效,调用notifyDataSetChanged()
方法也不会生效。可以尝试将数据集的更新操作放在原本的适配器对象中进行。
确保调用notifyDataSetChanged()
方法的位置正确:在数据集产生变化后立即调用notifyDataSetChanged()
方法,确保该方法在数据集更新后被调用。
检查适配器的getCount()
方法是否是正确返回数据集的大小:如果getCount()
方法返回的值不正确,notifyDataSetChanged()
方法可能不会生效。可以在getCount()
方法中打印日志,检查返回的值是否是正确。
如果上述方法依然无效,多是其他缘由致使notifyDataSetChanged()
方法不起作用。可以检查代码中是否是有其他可能影响数据刷新的因素,例如使用notifyDataSetInvalidated()
方法、使用毛病的适配器对象等。
TOP