2013-07-30 145 views
0

所以我有方法的数据库:从数据库中删除项目并更新列表视图?

public boolean deleteContact(long rowId) { 
    return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; 
} 

我对如何利用它,但它只是不删除项的总体思路。我不知道如何找出该项目是在哪一行下面是在它的数据库中的列表视图,与在特定事件:

private void Items() { 
    AlertDialog.Builder dlgAlert = new AlertDialog.Builder(ItemsList.this); 
    dlgAlert.setTitle("Something Here"); 
    dlgAlert.setMessage("What would you like to do?"); 
    dlgAlert.setPositiveButton("Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 
    dlgAlert.setNegativeButton("Delete", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 

//This is where it should be finding what row the item is in and deleting it... 

       } 
      }); 
    dlgAlert.setCancelable(true); 
    dlgAlert.create().show(); 
} 
+0

任何人都不可能回答这个问题。你需要做的是做更多的研究如何开发基于android的数据库应用程序。 – Qberticus

+0

你有一个自定义的适配器来显示你的列表视图?通常你将listview的项目设置为onItemClickListener。在那里,你可以灵活地得到你想要的东西 – Opiatefuchs

+0

嗯,我假设我需要调用类似于:'db.deleteContact(//然后以某种方式找到该行的id);'我只是不知道如何做吧.. –

回答

0

我假设你已经使用的适配器来填充列表视图。一般来说,当处理android数据库时,我们必须给出一个自动增量列_id。您可以使用参数“int which”来获取被点击的条目。 int参数将等于_id(您的数据库的自动增量列)将您的数据库移至光标,将光标移至“which”并相应地删除该项目。当你保存你可能已经分配了类似的_id或ITEM_NO或类似的东西,一些独特的标识符中的所有项目

在你的数据库:

0

试试这个。

因此,当您在游标中获取数据并在自定义适配器的GetView方法中将自定义适配器分配给List时,您可以获取该唯一标识符的值。获得后设置标签查看您的身份证号码。所以当你点击列表中的任何视图时,你将得到它的标签值。并将其传递给你的方法项(字符串标签)。当点击警报按钮时,您可以调用与方法中给定的标识符匹配的数据库删除方法。以便它可以删除该记录。

希望它有助于!

相关问题