我希望在我的应用程序的 BETA 版本中添加一个新功能。我想我需要帮助我处理删除特定行的方法。
除了从两个数据库表中删除特定行或 ID 值之外,我已经能够对我的应用程序中的数据库执行所有我想要的操作。
我正在调用 deleteClient() 并将光标传递到我的 DBAdapter 中。此表的 rowID 采用长值。
数据库适配器:
public boolean deleteClient(long rowId)
{
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}
DatabaseHandler 为其他存储工作创建第二个数据库,但应该删除相同的:
public boolean delete(long rowId)
{
return db.delete(TABLE_LABELS, KEY_ID + "=" + rowId, null) > 0;
}
在我的课堂上,我尝试了一些这样的变化: //db = the databaseadapter
db.open();
long loadID = contactList.getSelectedItemId();
//contact list is a spinner that is auto populated with each new entry added to it.
Cursor cursor = db.getClient(loadID);
db.deleteClient(cursor);
db.close();
和这个
dh.getWritableDatabase();
long currentlySelected = contactList.getSelectedItemId();
dh.delete(currentlySelected);
dh.close();
一个删除但不是正确的选择 - 另一个导致立即崩溃。DDMS 给出了提示,但我不知道还会发生什么。
总体上对这种结构有什么想法,或者对这种方法有更好的技术吗?
微调器加载如下:
private void loadSpinnerData() {
// database handler
DatabaseHandler dbh = new DatabaseHandler(getApplicationContext());
// Spinner Drop down elements
List<String> lables = dbh.getAllLabels();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
// Drop down layout style - list view with radio button
dataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
contactList.setAdapter(dataAdapter);
}