Java Android应用程序中的SQLite
我目前正在尝试学习Java,因此我开始在需要SQLite的地方制作一个Android应用程序。一切似乎都很好,但我似乎无法让update语句正常工作 我有一个.java文件,其中包含以以下内容开头的所有SQLite语句:Java Android应用程序中的SQLite,java,android,sqlite,Java,Android,Sqlite,我目前正在尝试学习Java,因此我开始在需要SQLite的地方制作一个Android应用程序。一切似乎都很好,但我似乎无法让update语句正常工作 我有一个.java文件,其中包含以以下内容开头的所有SQLite语句: public static final String KEY_ROWID = "_id"; public static final String KEY_TASK1 = "Content"; public static final String KEY_TASK2 = "Nam
public static final String KEY_ROWID = "_id";
public static final String KEY_TASK1 = "Content";
public static final String KEY_TASK2 = "Name";
public static final String KEY_TASK3 = "Stack";
public static final String DATABASE_NAME = "DBName";
public static final String DATABASE_TABLE = "Table";
public static final int DATABASE_VERSION = 10;
private static final String DATABASE_CREATE_SQL =
"CREATE TABLE " + DATABASE_TABLE
+ " (" + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_TASK1 + " Varchar UNIQUE, "
+ KEY_TASK2 + " TEXT NOT NULL, "
+ KEY_TASK3 + " INTEGER"
+ ");";
以下是我在应用程序中调用的更新:
public boolean updateRow(Integer task1, Integer task3) {
String where = KEY_TASK1 + "=" + task1;
ContentValues newValues = new ContentValues();
newValues.put(KEY_TASK3, task3);
// Insert it into the database.
return db.update(DATABASE_TABLE, newValues, where, null) != 0;
}
在我的main.java文件中,我调用:
private void ScanOutItem (View view){
myDb.updateRow("5741000124024", 2);
}
我已将其绑定到应用程序中的一个按钮。
正如我在开始时所说,这是我第一次申请,所以我不能保证它是完美的。但是,如果我遗漏了什么,或者你能看出哪里出了问题,请告诉我。我觉得我什么都试过了,所以我非常感谢你的帮助
我使用了我在youtube上看到的一个指南,但我根据指南做了一些更改,它不适合我的应用程序
指南:尝试db.updateDATABASE_表,newValues,KEY_TASK1+=?,new String[]{TASK1}
或db.execSQLUPDATE+DATABASE_TABLE+SET+KEY_TASK3+=+TASK3+WHERE+KEY_TASK1+=+TASK1
如果上面的方法无效,请尝试像这样更新updateRow方法
public boolean updateRow(Integer task1, Integer task3) {
String where = KEY_TASK1 + "=" + task1;
ContentValues newValues = new ContentValues();
newValues.put(KEY_TASK3, task3);
SQLiteDatabase db1 = this.getWritableDatabase();
// Insert it into the database.
return db.update(DATABASE_TABLE, newValues, KEY_TASK1+"=?", new String[]{task1}) != 0;
}
Button myButton = (Button) findViewById(R.id.myButtonId);
myButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
//call update method here
}
});
更新
不要在xml中设置onClick:in,而是像这样从java调用它
public boolean updateRow(Integer task1, Integer task3) {
String where = KEY_TASK1 + "=" + task1;
ContentValues newValues = new ContentValues();
newValues.put(KEY_TASK3, task3);
SQLiteDatabase db1 = this.getWritableDatabase();
// Insert it into the database.
return db.update(DATABASE_TABLE, newValues, KEY_TASK1+"=?", new String[]{task1}) != 0;
}
Button myButton = (Button) findViewById(R.id.myButtonId);
myButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
//call update method here
}
});
我想我发现了我的一个问题,我确实用一个重定向到新文件的按钮分配了onClick,可能因此它没有被应用,但是我添加了一个新的按钮,我现在试图分配给它,每次我单击它,它都会说我的应用程序停止工作。。嗯,但是我尝试了你的两种解决方案,结果都是一样的。也许,你是在xml本身中设置侦听器,不是吗?anwyz,发布日志。我已经删除了onClick函数,并添加了您编写的代码,现在我的应用程序没有关闭,但它似乎仍然没有更新任何内容。我已将日志文件发布到:它不会更新,因为您试图从无效url获取数据,这可以从错误日志org.apache.http.conn.HttpHostConnectException:连接到https://www.googleadservices.com 拒绝我的代码中没有任何url?那么,它如何获得被拒绝的连接呢?对我来说没什么意义:s