2017-11-26 4 views
1

Ich möchte Zeile in Sqlite-Datenbank löschen. Öffnen öffnet sich, wenn lange auf Listview gedrückt wird (Popup öffnet sich mit ContextMenu). Pop-Up enthält zwei Optionen: "Löschen", "Aktualisieren". Wenn Sie "Löschen" drücken, möchte ich diese Zeile löschen.Wie lösche Zeile in Sqlite mit ContextMenu?

@Override 
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    menu.setHeaderTitle("Select Action"); 
    menu.add(0, v.getId(), 0, "Delete"); 
    menu.add(0, v.getId(), 0, "Update"); 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    ListView lst=(ListView) findViewById(R.id.ListViewVeriler); 

    if(item.getTitle()=="Delete"){function1(item.getItemId());} 
    else if(item.getTitle()=="Update"){function2(item.getItemId());} 
    else {return false;} 
    return true; 
} 

public void function1(int id){ 
    ListView lst=(ListView) findViewById(R.id.ListViewVeriler); 
    VeriTabani vt=new VeriTabani(MainActivity.this); 
    //VeriTabani is my database class 
    int idd=(int)lst.getSelectedItemId(); 
    vt.VeriSil(idd); 
    //VeriSil is delete method in VeriTabanı class 
    Toast.makeText(this, "Deleted Succesfully", Toast.LENGTH_SHORT).show(); 
} 
public void function2(int id){ 
    Toast.makeText(this, "Update Person", Toast.LENGTH_SHORT).show(); 
    // I will open UpdateAction here 
} 


public void VeriSil(int id){ 

    SQLiteDatabase db = this.getWritableDatabase(); 

    try { 
        db.delete(TABLO_KISILER, ROW_ID_ + " = ?", 
       new String[] { String.valueOf(id) }); 
    } 
    catch (Exception e){ 
    } 
    db.close(); 
} 

Antwort

2

Verwendung dieser Methode in Ihrer Content

public static void deleteRow(int id) 
{ 
db.execSQL("DELETE FROM "+YOUR_TABLE_NAME+" WHERE id= ?",new Object[]{id}); 
} 

in Sie Aktivität rufen Sie die Methode

mContentProvider.deleteRow(id) 

zusätzliche Informationen

public void function1(int id){ 
    ListView lst=(ListView) findViewById(R.id.ListViewVeriler); 
    VeriTabani vt=new VeriTabani(MainActivity.this); 
    //VeriTabani is my database class 
    int idd=(int)lst.getSelectedItemId(); 
    mContentProvider.deleteRow(idd); 
    //VeriSil is delete method in VeriTabanı class 
    Toast.makeText(this, "Deleted Succesfully", Toast.LENGTH_SHORT).show(); 
} 

alles erledigt

viel glück!

Verwandte Themen