1

コンテキストメニューからメニュー項目の削除を選択したときに、sqlitedbレコードを削除したい。コンテキストメニューを作成して機能していますが、db行を削除できません。レコードを削除する方法はありますか?何をすればよいでしょうか?

public void deleteItem(dbItem item) {
    SQLiteDatabase db = this.getWritableDatabase();

    db.delete(TABLE_ITEMS, items_id + " = ?",
        new String[] { String.valueOf(item.getID()) });
    db.close();
}

public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();

    int menuitemindex = item.getItemId();


    if(item.getItemId()==0)
    {
        //code for send text
    } 
    else if(item.getItemId()==1) // Delete menu item
    {
       //  db.deleteItem(item2);
    }
    return super.onContextItemSelected(item);    
 }

コンテキストメニューセクションでdeleteItem()プロシージャを使用するにはどうすればよいですか?

4

1 に答える 1

0

私は12日後に解決策を見つけました:)

public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();

    int menuitemindex = item.getItemId();


    if(menuitemindex == 0)
    {
        //code for send text
    } 
    else if(menuitemindex == 1)
    {           
        dbItem silinen = adapter.getItem(info.position);      
        adapter.remove(silinen);            
        adapter.notifyDataSetChanged();
        db.deleteItem(silinen, getApplicationContext());        
    }
    return super.onContextItemSelected(item);    
 }

そして手順を削除します:

public void deleteItem(dbItem item, Context context) {
    SQLiteDatabase db = this.getWritableDatabase();

    try {

      db.delete(TABLE_ITEMS, items_id + " = ?",
              new String[] { String.valueOf(item.getID())});

    } catch (Exception e) 
    {
      Log.e("insert",e.getMessage());
    }


    Toast.makeText(context, "Item succesfully deleted. Name: "+ item.getName(), Toast.LENGTH_LONG).show();

    db.close();        

}
于 2012-07-20T14:40:28.473 に答える