Ich erstelle eine App, in der ich nach Dateien suchen und sie von der SDCard löschen kann. Alles funktioniert, außer dass ich Dateien, die in ListView
überprüft werden, nicht löschen kann.wie lösche ich dateien von listview von menuInflater
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
convertView = inflater.inflate(R.layout.row, parent, false);
viewholder = new ViewHolder();
viewholder.checkbox = (CheckBox) convertView.findViewById(R.id.checkBox1);
viewholder.texview = (TextView) convertView.findViewById(R.id.textView1);
viewholder.texview.setText(modelItems.get(position));
viewholder.checkbox.setChecked(checkBoxState[position]);
viewholder.checkbox.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View p1)
{
// TODO: Implement this method
if (((CheckBox) p1).isChecked())
{
checkBoxState[position] = true;
filepath = modelItems.get(position);
}
else
{
checkBoxState[position] = false;
}
}
});
return convertView;
}
Wie kann ich Dateien löschen, die in ListView
ausgewählt werden und auch die ListView
aktualisieren?
Hier ist der gelöschte Code, den ich ausprobiert habe, welche Änderungen sollte ich hier anwenden?
public void delete()
{
path = Environment.getExternalStorageDirectory().getAbsolutePath();
for (int i=0;i < checkBoxState.length;i++)
{
if (checkBoxState[i] == true)
{
File f = new File(path + "/" + filepath);
if (f != null && f.exists())
{
f.delete();
modelItems.remove(modelItems.get(i));
}
}
}
notifyDataSetChanged();
}
gemacht haben erstellen eine Liste. Wenn das Kontrollkästchen aktiviert ist, fügen Sie den Dateipfad zur Liste hinzu. Wenn der Benutzer das Löschen bestätigt, loop die Liste, um alle Dateipfade zu erhalten, lösche sie einzeln. Vergessen Sie nicht, das Element aus der Liste zu entfernen, wenn nicht aktiviert –
Ich habe versucht, aber mein Code funktioniert nicht :( –
Was passiert? Zuletzt ausgewählte Element gelöscht? –