Android 用于更新数据库的自定义适配器中的复选框
我正在尝试获取在自定义适配器中创建的复选框,以便在单击列表时更新数据库。我在customAdapter内的复选框上实现了onclicklistener(代码如下)。我还加了一个祝酒词来检查它是否有效。问题是Toast为每一行显示正确的信息(我单击的项目名称);但是,数据库不会得到更新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
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代码约定——我忘记添加它了,谢谢你让我知道。