我几乎是一个新手,我想从另一个活动中更新数据库。这意味着我有第一个活动,我正在编写 DataBaseHandler(公共类 MyDatabaseHandler 扩展 SQLiteOpenHelper)。
然后,在第二个活动中,我添加了一些数据:
MyDatabaseHandler db = new MyDatabaseHandler(this);
Contact peter = new Contact(1,"Peter", 27);
db.addContact(peter);
现在我想将彼得的年龄从 27 岁更改为 28 岁,我想从另一个活动中做到这一点。所以,我正在写第三个活动:
MyDatabaseHandler db = new MyDatabaseHandler(this);
Contact peter = new Contact(1,"Peter", 28);
db.updateContact(peter);
但它不起作用。我想如果我提供相同的 KEY_ID,在这种情况下为 1,我可以从任何地方更改条目。但似乎我错了。有人可以向我解释什么是正确的方法吗?
谢谢!
PS如果我从同一个活动进行更新,它工作得很好,但如果我从另一个活动进行更新:(
这是我的更新方法:
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getAge());
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}