Aktualizacja SQLiteDatabase nie działa?

Próbuję uzyskać db.update, aby zaktualizować jeden z wierszy mojej bazy danych o nowe wartości, ale nie wydaje się, aby zapisywał. Przejrzałem moją składnię, ale nie mogę uzyskać danych do zapisania. Funkcja wstawiania działa, ale nie aktualizuje. Każda pomoc byłaby doceniana. Poniżej znajduje się moja klasa danych, która używa obiektu DbHelper.

  public class Data {
    static final String TAG = "Data";

    public static final String DB_NAME = "data.db";
    public static final String TABLE_NAME = "tasks";
    public static final String C_ID = "_id";
    public static final String C_TASK = "taskname";
    public static final String C_DUE_DATE = "due_date";
    public static final String C_PRIORITY = "priority";
    public static final int DB_VERSION = 1;

    Context context;
    DbHelper dbHelper;
    SQLiteDatabase db;

    public Data(Context context) {
        this.context = context;
        dbHelper = new DbHelper();
    }

    public void insert(ToDoItem task) {
        db = dbHelper.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(C_TASK, task.getTask());
        values.put(C_PRIORITY, task.getPriority());

        db.insert(TABLE_NAME, null, values);
    }
    public void update(int id, ToDoItem task) {
    ContentValues values = new ContentValues();
    values.put(C_ID, id);
    values.put(C_TASK, task.getTask());
    values.put(C_PRIORITY, task.getPriority());

    String[] whereArgs = {String.valueOf(id)};

    db.update(TABLE_NAME, values, C_ID +" =?", whereArgs);
    System.out.println(db.update(TABLE_NAME, values, C_ID +" =?", whereArgs));

    Log.d(TAG, "updating task " + db.toString() +" "+ id + " to priority " + task.getPriority());
}

    public void delete(int id){
        db.delete(TABLE_NAME, C_ID+"="+id, null);
    }

    public Cursor queueAll(){
        db = dbHelper.getWritableDatabase();

        String[] columns = new String[]{C_ID, C_TASK, C_DUE_DATE, C_PRIORITY};

        Cursor cursor = db.query(TABLE_NAME, columns,   
                null, null, null, null, null);
        return cursor;
     }

    class DbHelper extends SQLiteOpenHelper {

        public DbHelper() {
            super(context, DB_NAME, null, DB_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            String sql = String.format("create table %s" +
                        "(%s int primary key, %s text, %s text, %s int)", 
                        TABLE_NAME, C_ID, C_TASK, C_DUE_DATE, C_PRIORITY);

            Log.d(TAG, "onCreate with SQL:"+sql);

            db.execSQL(sql);    
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("drop if exists " + TABLE_NAME);
            onCreate(db);
        }
    }

}

Oto klasa obiektu ToDoItem Próbuję zaktualizować priorytet po kliknięciu elementu

     public class ToDoItem {
        private String task;
        private String dueDate;
        private int priority;

        public ToDoItem(String task) {
        this.task = task;
        this.priority = 1;
    }

    public ToDoItem(String task, String dueDate) {
        this.task = task;
        this.dueDate = dueDate;
        this.priority = 1;
    }

    public ToDoItem(String task, int priority) {
        this.task = task;
        if(priority <=3 && priority > 0) {
            this.priority = priority;
        } else 
            this.priority = 1;
    }

    public ToDoItem(String task, String dueDate, int priority) {
        this.task = task;
        this.dueDate = dueDate;
        if(priority <=3 && priority > 0) {
            this.priority = priority;
        } else 
            this.priority = 1; 
    }

    public String getTask() {
        return task;
    }

    public void setTask(String task) {
        this.task = task;
    }

    public String getDueDate() {
        return dueDate;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public int getPriority() {
        return priority;
    }

    public void setPriority(int priority) {
        if(priority <=3 && priority > 0) {
            this.priority = priority;
        } else 
            this.priority = 1;
    }
}

Wreszcie jest mój onListItemClickListener, który używa ArrayList ToDoItems, zmienia priorytet i wywołuje metodę aktualizacji z mojej klasy danych. Jednak wartości wiersza, który próbuję zaktualizować, pozostają niezmienione. Użyłem Log.d, aby sprawdzić, czy przekazane zostały prawidłowe wartości i były. Z jakiegoś powodu zmiany się nie zdarzają. Każda pomoc byłaby doceniana.

        todoList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, final int arg2,
                long arg3) {

            if(soundEnabled) {
                playSound();
            }

            // Change the priority of the item inside the arrayList todoItems
            todoItems.get(arg2).setPriority(todoItems.get(arg2).getPriority() + 1);
            String name = todoItems.get(arg2).getTask();
            int priority = todoItems.get(arg2).getPriority();
            final ToDoItem task = new ToDoItem(name, priority);

            // Get the position of the task in the database
            int id = arg2 + 1;
            data.update(id, task);


});

questionAnswers(3)

yourAnswerToTheQuestion