我需要你的帮助。我在这方面花了太多时间,如果我指定了 ID 号,我只能更新数据库。
- 单击列表视图项并将数据发送到新活动以进行编辑
编辑数据并返回列表视图活动。简单对。嗯。
@Override public void onItemClick(AdapterView<?> listView, View view, int position, long id) { Cursor cursor = (Cursor)listView.getItemAtPosition(position); String title = cursor.getString(cursor.getColumnIndexOrThrow(MoviesDbAdapter.KEY_TITLE)); String barcode = cursor.getString(cursor.getColumnIndexOrThrow(MoviesDbAdapter.KEY_BARCODE)); String rowId = cursor.getString(cursor.getColumnIndexOrThrow(MoviesDbAdapter.KEY_ROWID)); Intent movieEdit = new Intent(getBaseContext(), MovieEdit.class); Bundle bundle = new Bundle(); bundle.putString("rowId", rowId); bundle.putString("title", title); bundle.putString("barcode", barcode); movieEdit.putExtras(bundle); startActivity(movieEdit);
从 listview 活动接收意图:
if (this.getIntent().getExtras() != null) {
Bundle bundle = this.getIntent().getExtras();
editTitle.setText(bundle.getString("title"));
editBarcode.setText(bundle.getString("barcode"));
editId.setText(bundle.getString("rowId"));
}
由按钮激活的语句:
case R.id.buttonSave:
mDb.open();
ContentValues values = new ContentValues();
values.put(MoviesDbAdapter.KEY_TITLE, title);
values.put(MoviesDbAdapter.KEY_BARCODE, barcode);
mDb.updateTitle("=?", title, barcode);
mDb.close();
MovieDbAdapter 中的方法:
public boolean updateTitle(long rowId, String title, String barcode)
{
ContentValues args = new ContentValues();
args.put(KEY_TITLE, title);
args.put(KEY_BARCODE, barcode);
return mDb.update(SQLITE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
我知道这已经完成了,但无论我尝试什么,我都无法用新数据更新数据库。希望你们能帮到大家。