如何清除SimpleAdapter中的元素?

时间:2017-10-24 10:31:30

标签: android listview simpleadapter

我正在尝试在SET按钮上填充listview。当我选择值spinner并根据列表将填充。我面临的问题是很多时候我点击SET按钮它会将项目添加到listview。 enter image description here

   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();
     }
    });

3 个答案:

答案 0 :(得分:1)

在将商品设置为listview

之前,您可以致电listview.setAdapter(null);

答案 1 :(得分:1)

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

onClick方法中将其设置为本地,或在onClick方法的第一行中清除它。 (map

的情况也是如此
public void onClick(View view){
    mylistData.clear();
    map.clear();
    //your code
}

答案 2 :(得分:0)

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

如果您发布代码

会更容易