为什么适配器中的getCount被调用了这么多次?

时间:2012-11-26 10:24:47

标签: android listview listadapter

我有一个自定义列表,只需几分钟即可显示。当我试图检查问题的位置时,我看到即使我在列表中只有一个项目,方法getCount()被调用5次,getVIew()被调用一次,然后getCount()是被召唤更多时间。 整体getCount()被调用7次。这有道理吗?

谢谢!

4 个答案:

答案 0 :(得分:8)

您可以看到hereAdapter.getCount()方法的不同内部调用。

但是你必须记住,你无法控制如何调用这个方法。

它可以被多次调用,这就是为什么你必须尽可能快地保持它。

答案 1 :(得分:2)

getCount()被调用的次数太多,因为App-USER可以随时update its list(可以在其存储中添加数据),这就是我们返回的原因,(storage).size()(元素总数) )。

答案 2 :(得分:1)

在以下情况下将调用适配器getCount()方法。

1)将适配器设置为列表视图/网格视图。

2)当我们在适配器上调用notifyDataSetChanged时。

因此,请检查您的代码,您可能会更多时间或递归地执行上述情况。

答案 3 :(得分:0)

您应该有一个搜索按钮,可在搜索时更新适配器。该方法被称为多次绘制视图,如果在该方法中有setAdapter,那么,getCount将被多次调用,并且最终返回0并且您的视图将不会被填充。