Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序中的SQLite_Java_Android_Sqlite - Fatal编程技术网

Java Android应用程序中的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

我目前正在尝试学习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 = "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