2015-05-19 60 views
0

我目前正在學習Java,因此我開始製作一個需要SQLite的Android應用程序。一切似乎工作正常,但我似乎無法讓更新聲明工作。Android應用程序中的SQLite

我有一個.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; 
} 

我主要的java文件我打電話:

private void ScanOutItem (View view){ 
    myDb.updateRow("5741000124024", 2); 
} 

我已經綁定到我的應用程序中的一個按鈕。 正如我在開始時所說的那樣,這是我的第一個應用程序,所以我不能保證它是完美的。但是,如果我錯過了一些東西,或者你可以看到什麼是錯的,請告訴。我覺得我已經嘗試了一切,所以任何幫助表示讚賞。

我已經使用了我在YouTube上看到的指南,但是根據指南,我對這些指南進行了一些更改,並不適合我的應用。

指南:https://www.youtube.com/watch?v=9zEKKKEFtHQ

回答

0

嘗試db.update(DATABASE_TABLE, newValues, KEY_TASK1+"=?", new String[]{task1});

db.execSQL("UPDATE "+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; 
} 

UPDATE 而不是SE擬合onClick:在XML中,從Java調用它

Button myButton = (Button) findViewById(R.id.myButtonId); 
myButton.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 
     //call update method here 
    } 
}); 
+0

我想我找到了我一個問題,我做了一個按鈕,重定向到一個新的文件指定的onClick,可能因此沒有得到應用,但是我添加了一個新的按鈕,我試圖將其分配給現在每次我點擊它,它會說「我的應用程序已停止工作」..嗯但我確實嘗試了兩種解決方案和相同的結果。 – Dondyr

+0

也許你在xml中設置了監聽器,不是嗎? anwyz,發佈logcat。 – theapache64

+0

我已經刪除了onClick函數,並添加了您編寫的代碼,現在我的appliication不關閉,但它似乎仍然不會更新任何內容。 我發佈了我的日誌文件: http://dondyr.dk/verbose.txt http://dondyr.dk/error.txt http://dondyr.dk/debug.txt http:// dondyr.dk/info.txt – Dondyr

相關問題