自定义BaseAdapter重复ListView中的项目
问题描述:
我有一个自定义适配器从BaseAdapter继承,并且我有一个不同的.java文件中的ListView。基本上我点击一个按钮,这就调用了自定义适配器。所以当应用程序第一次加载第一次时,我点击按钮,没关系。在随后的每次点击中,项目(保留订单)都会复制项目的编号和内容。我相信有一些错误的重写getView方法:自定义BaseAdapter重复ListView中的项目
public View getView(int position, View convertView, ViewGroup parent) {}
但是我不知道该视图convertView是否被设置为任何时候项目已经能够显示在ListView上。所以我把支票放在那里:
if (view == null) {}
我认为这个检查是问题的根源。
任何帮助将不胜感激。
这里是要点的SharedResourcesAdapter,自定义适配器类: https://gist.github.com/serceberka/f34c8f3339ef9e4bc9dc23d3ac8f74c4
这里是要点到SharedResources AppCompatActivity其中适配器被设置: https://gist.github.com/serceberka/ea9fc73b42a9d271e6fbac7d7793667f (你会在pageLoad的类找到它它扩展了AsyncTask)
答
问题已解决。
基本上自定义适配器本身没有问题,问题是我正在阅读列表中的项目并在每次发送新查询时更新列表。为了解决这个问题,我在添加项目之前清除了列表,以避免重复项目(即来自相同的搜索查询)或保留来自先前查询的项目。
请不要只连接到您的代码异地。你需要在问题本身中包含[mcve]。 –
是的,我下次会这样做。 – 4blun3kin
如果你不打算把问题放在代码中,那么你可以直接删除它。 –