Android - 使用游标删除数据库条目

时间:2013-08-02 16:03:11

标签: java android sql sqlite

我想在我的应用程序的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);

    }

0 个答案:

没有答案