Diskuze: Odstranění file z ExternalStorageDirectory
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Vyřešil jsem to jinak, Už mi to odstraňuje poznámku, pouzil jsem longclicklistener. Chtěl bych ale dialogové okno kde se to zeptá Are you sure?.
lv_filenames.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
AlertDialog.Builder alert = new AlertDialog.Builder(Main.this);
alert.setTitle("Delete note");
alert.setMessage("Are you sure you want to delete this note?");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton) {
adapter.remove(filenames.get(position));
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancel", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
return false;
}
});
Jak to udělat aby to běželo? Nespustí se alert, myslím, že chyba je v
AlertDialog.Builder alert = new AlertDialog.Builder(Main.this);
a také v alert.setPositiveButton mi to říká, že position musí být final, což by neměla být ale když to dám mimo ten setpositivebutton, smaže se.
AlertDialog.Builder alert = new AlertDialog.Builder(Main.this);
Ahoj, týmto vytváraš iba Builder pre AlertDialog, aby si AlertDialog zobrazil, musíš zavolať metódu show() na dialógu. Okrem toho k parameteru position pristupuješ z anonymnej triedy, to znamená že musí byť finálna.
lv_filenames.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
AlertDialog.Builder alert = new AlertDialog.Builder(Main.this);
alert.setTitle("Delete note");
alert.setMessage("Are you sure you want to delete this note?");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
adapter.remove(filenames.get(position));
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alert.show();
return false;
}
});
Díky, už to ukazuje dialog ale když potvrdím že hcci smazat, otevře se místo aby se smazala. Myslím, že je to proto, že se vymaže pouze z adapteru, tedy textView, ale stále je v Arraylistu. Nevěděl by jsi jak to smazat i z arraylistu?
public ArrayList<FileName> GetNotesList() {
File f = new File(this.path);
File file[] = f.listFiles();
ArrayList<FileName> filenames = new ArrayList<FileName>();
for (int i = 0; i < file.length; i++) {
String desc = new NoteManager().readNote(file[i].getName());
FileName filename = new FileName(file[i].getName(), desc);
filenames.add(filename);
}
return filenames;
}
https://www.itnetwork.cz/dev-lighter/925 můj celý zdroják
Zobrazeno 5 zpráv z 5.