如何从 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)
如何在 simpleadapter 中实现 OnItemClickListener?代码删除、更新等,