我使用SimpleAdapter在listview中显示项目列表。每次显示getView()时都会调用getView()来显示不同布局的每个列表项。这样我就成功了。但这里的问题是每当我再次滚动列表项getView()方法正在执行,我得到不可靠的结果。我的要求是我不想在滚动listview时执行getView()方法。任何正文请指导我摆脱这种情况。< / p>
答案 0 :(得分:1)
这是ListView的预期行为,它是自动缓冲的。因此,当您滚动时,新项目会被充气并添加,旧项目会被淘汰。此机制通过调用重写的getView()方法来工作。
如果您不想这样,那么只需在scrollview中使用LinearLayout,然后用列表项手动填充它。您甚至可以使用以下方法使用适配器:
linear.addView(adapter.getView(index, null, linear));
希望这有帮助!
我想添加一件事,如果 你的适配器中有多个记录只需使用这样的for循环。
ArrayAdapter<Question> adapter = MyCustomArrayAdapter
.GetArrayAdapterInstance(this, flag1, flag1, lst_question);
for(int i=0;i<adapter.getCount();i++)
{
linear.addView(adapter.getView(i, null, linear));
}
答案 1 :(得分:0)
我也遇到同样的问题,这是我们的回答! Android, how to stop reading getView() function again, if the content is already downloaded in the ListView
让我知道它是否适合你;)