Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Android 用于更新数据库的自定义适配器中的复选框_Android_Sqlite_Checkbox_Android Sqlite_Baseadapter - Fatal编程技术网

Android 用于更新数据库的自定义适配器中的复选框

Android 用于更新数据库的自定义适配器中的复选框,android,sqlite,checkbox,android-sqlite,baseadapter,Android,Sqlite,Checkbox,Android Sqlite,Baseadapter,我正在尝试获取在自定义适配器中创建的复选框,以便在单击列表时更新数据库。我在customAdapter内的复选框上实现了onclicklistener(代码如下)。我还加了一个祝酒词来检查它是否有效。问题是Toast为每一行显示正确的信息(我单击的项目名称);但是,数据库不会得到更新 datasource = new MySQLiteHelper((AssTasksActivity) context); CB.setOnClickListener(new View.OnClickLi

我正在尝试获取在自定义适配器中创建的复选框,以便在单击列表时更新数据库。我在customAdapter内的复选框上实现了onclicklistener(代码如下)。我还加了一个祝酒词来检查它是否有效。问题是Toast为每一行显示正确的信息(我单击的项目名称);但是,数据库不会得到更新

 datasource = new MySQLiteHelper((AssTasksActivity) context);

    CB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Task Ta = task; //Task is an object with a separate class that is stored in the sqlite db.

            if(CB.isChecked()){
                Ta.setState(0);
                datasource.updateTask(Ta);
                //Toast T;
                Toast.makeText(context, Ta.getTaskName(),
                        Toast.LENGTH_LONG).show();
            }
            else{

                Ta.setState(1);
                datasource.updateTask(Ta);
                Toast.makeText(context, Ta.getTaskName(),
                        Toast.LENGTH_LONG).show();
            }
        }
    });
下面是更新的sqlite代码

public int updateTask(Task task){
        SQLiteDatabase database = this.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put(MySQLiteHelper.T_COLUMN_TASK_ID, task.getId());
        values.put(MySQLiteHelper.T_COLUMN_TASKNAME, task.getTaskName());
        values.put(MySQLiteHelper.T_COLUMN_DESCRIPTION, task.getDescription());
        values.put(MySQLiteHelper.T_COLUMN_STATE, task.getState());
        values.put(MySQLiteHelper.T_COLUMN_PK, task.getAssignmentId());
        values.put(MySQLiteHelper.T_COLUMN_ERROR_DESCRIPTION, task.getErrorDescription());

        return database.update(TABLE_TASKS, values, T_COLUMN_ROWID + " = ?",
                new String[] { String.valueOf(task.getId()) });
    }

return语句中的T\u COLUMN\u ROWID应该是T\u COLUMN\u TASK\u ID。这是一个愚蠢的错误。

我认为很明显,没有MySQLiteHelper类的代码,没有人可以帮助您。另外,请看一下java代码约定——我忘记添加它了,谢谢你让我知道。