我有一张来自SD卡的ListView
显示文件。我想添加一个按钮,用于删除ListView
和SD卡中的所有项目。我尝试了以下内容,但删除了一个。再次单击该按钮后,它会删除另一个按钮。
Button delete = (Button) findViewById(R.id.delete);
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (int i=0;i<adapter.getCount();i++){
adapter.getItem(i);
File ff = new File(Environment.getExternalStorageDirectory().toString() + "/TestApp/" + adapter.getItem(i));
ff.delete();
}
adapter.remove(adapter.getItem(i));
adapter.notifyDataSetChanged();
}
}
答案 0 :(得分:0)
您需要在此处清除与适配器关联的列表。然后只需在适配器上调用notifyDataSetChanged()
即可。所以示例代码应如下所示。删除SD卡中的所有关联文件后,只需清除列表即可。
Button buy = (Button) findViewById(R.id.delete);
buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (int i = 0; i < yourList.size(); i++){
File ff = new File(Environment.getExternalStorageDirectory().toString() + "/TestApp/" + yourList.get(i));
ff.delete();
}
// Clear your list here
yourList.clear();
// And remove the following line
// adapter.remove(adapter.getItem(i));
adapter.notifyDataSetChanged();
}
}
答案 1 :(得分:0)
在您的适配器中放置以下方法:
public void clearData(){
list.clear();
notifyDataSetChanged();
}
现在替换您的代码行:
adapter.remove(adapter.getItem(i));
adapter.notifyDataSetChanged();
到这一行:
adapter.clearData();