如何从 SimpleAdapter 中清除元素?

Posted

技术标签:

【中文标题】如何从 SimpleAdapter 中清除元素?【英文标题】:How to clear elements from SimpleAdapter? 【发布时间】:2018-04-05 02:42:52 【问题描述】:

我正在尝试在 SET 按钮上填充列表视图。当我选择值微调器时,将根据列表填充。我面临的问题是很多时候我点击 SET 按钮它会将项目添加到 listview 。

   setButton.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v)
        
       for (int i = 0; i < DeviceID.size(); i++) 
       

                //initialize row data
                for (int j = 0; j < 5; j++) 
                    if (j == 0)
                        str = DATE.get(i);
                    else if (j == 1)
                        str = TIME.get(i);
                    else if (j == 2)
                        str = DeviceID.get(i);
                    else if (j == 3)
                        str = SMSTEXT.get(i);
                    map.put(columnTags[j], str);
                
                mylistData.add(map);
            

   final String[] columnTags = new String[]"one", "two", "three", "four", "five", "six", "lat", "log";
    final int[] columnIds = new int[]R.id.textView5, R.id.textView8, R.id.textView9,R.id.checkbox, R.id.textView10;
    arrayAdapter = new SimpleAdapter(this, mylistData, R.layout.location_locator_textview, columnTags, columnIds);

     listview.setAdapter(arrayAdapter);
     arrayAdapter.notifyDataSetChanged();
     
    );

【问题讨论】:

贴出你试过的代码。 您只发布了初始化代码。在您更新适配器的位置发布代码。 【参考方案1】:

看起来您的列表mylistData 是一个全局变量。所以,旧项目仍在列表中。

要么在onClick 方法中将其设为本地,要么在onClick 方法的第一行将其清除。 (map 也是同样的情况)

public void onClick(View view)
    mylistData.clear();
    map.clear();
    //your code

【讨论】:

【参考方案2】:

您可以在将项目设置到列表视图之前致电listview.setAdapter(null);

【讨论】:

我试过了,但不行。因为我的适配器总是有价值@hasbi 你能分享你的代码的set函数和adapter/listview部分吗 我添加了你可以看到这个@hasbi【参考方案3】:

尝试修改adapter中某个元素的list,然后调用notifyDataSetChanged()

把代码贴出来会更方便

【讨论】:

以上是关于如何从 SimpleAdapter 中清除元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 simpleAdapter 表单 URL(XML 提要)中显示图像?

如何将资产文件夹中的图像设置为列表视图?(使用 SimpleAdapter)

如何清除向量中的所有元素,除了C++中向量中的最后一个元素

如何在 simpleadapter 中实现 OnItemClickListener?代码删除、更新等,

如何使用 SimpleAdapter 将下载的图像显示到 ImageView

Android开发 如何重写SimpleAdapter,自定义字体的大小?