我想在我的应用程序的BETA版本中添加一个新功能。我想我在处理删除特定行的方法上需要帮助。
除了从两个数据库表中删除特定行或ID值之外,我已经能够在我的应用程序中使用数据库执行所有操作。
我正在调用deleteClient()并将光标传递给我的DBAdapter。此表为rowID采用long值。
将对DBAdapter:
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 = 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给出了提示,但我无法弄清楚还有什么可能发生。
关于这种结构的一般想法还是关于这种方法的更好的技术?
Spinner像这样加载:
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);
}