自定义BaseAdapter复制ListView

时间:2017-06-02 15:55:31

标签: android android-asynctask baseadapter

我有一个继承自BaseAdapter的自定义适配器,我在另一个.java文件中有一个ListView。基本上我单击一个按钮,这将调用自定义适配器。因此,当应用程序首次加载时,我点击按钮,它没问题。在每次后续点击时,项目(保留订单)都会复制项目的编号和内容。我确信重写的getView方法有问题:

public View getView(int position, View convertView, ViewGroup parent) {}

但是,当项目准备好在ListView中显示时,我不确定View convertView是否设置为任何内容。所以我在那里放了一张支票:

if (view == null) {}

我认为这项检查是问题的根源。

任何帮助将不胜感激。

以下是SharedResourcesAdapter的要点,即自定义适配器类: https://gist.github.com/serceberka/f34c8f3339ef9e4bc9dc23d3ac8f74c4

以下是适配器设置的SharedResources AppCompatActivity的要点: https://gist.github.com/serceberka/ea9fc73b42a9d271e6fbac7d7793667f (您将在扩展AsyncTask的PageLoad类中找到它)

1 个答案:

答案 0 :(得分:0)

问题已经解决。

基本上自定义适配器本身没有问题,问题是我每次从List中读取项目并在每次发送新查询时更新List。为了解决这个问题,我在向其添加项目之前清除了列表,以避免出现重复项目(即来自同一个搜索查询)或保留以前查询中的项目。