【发布时间】:2015-09-13 11:32:57
【问题描述】:
我正在学习 android 并构建一个相当大的项目。 我的目标是让用户在 MainActivity 中更改他们的电子邮件地址 onClick,但我不知道如何更改数据库中的值。
我知道它应该是这样的:
db.update(TABLE_NAME, cv, where, value);
问题是数据库是在 SQLiteHandler 类中定义的,但我不知道如何在“update”中使用相同的“db”代码。我在 db 上不断收到 Cannot resolve method 'update(java.lang.String, android.content.ContentValues, java.lang.String, java.lang.String[])'。更新。
我尝试复制
SQLiteDatabase db = this.getWritableDatabase();
到我的 MainActivity,但此时我迷路了。
我关注this tutorial注册系统。
到目前为止我的代码:
private static final String TABLE_NAME = "email";
btnChangemail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db = new SQLiteHandler(getApplicationContext());
HashMap<String, String> user = db.getUserDetails();
String email1 = user.get("email");
String s1 = etChangemeil.getText().toString();
ContentValues cv = new ContentValues();
cv.put(user.get("email"), s1);
String where = (user.get("email")) ;
String[] value = { email1 };
db.update(TABLE_NAME, cv, where, value);
}
});
最好的问候,
丹
【问题讨论】:
-
@RanjithKumar 正如我在问题中所说:我在 db.update 上不断收到“无法解析方法..”。编辑:“无法解析方法'update(java.lang.String, android.content.ContentValues, java.lang.String, java.lang.String[])'”
-
您是否尝试过调用与“where”不同的字符串?也许 SQL 特定的变量会使解释器感到困惑?如
String myString = (user.get("email")) ;db.update(TABLE_NAME, cv, myString, value); -
@birgit 是的,我刚做了,问题仍然存在。
-
创建一个单独的类来扩展 SqliteOpenHelper 并从这个类访问.. 示例教程androidexample.com/…
-
你检查过这个例子吗? stackoverflow.com/questions/18959685/…