删除数据库行时发生SQL错误。Android CAB和listview
My使用SimpleCursor适配器在主活动中填充listview。我没有尝试使用上下文操作栏(CAB)从列表和数据库中删除项目。我的主要问题是: 1.这是正确的方法吗。 2.我的deleteRecord方法有什么问题 我的错误是: SQLiteException:near“LIKE”:编译时出现语法错误(代码1)::从离合器状态表中删除,其中\u id LIKE 驾驶室按钮点击代码:删除数据库行时发生SQL错误。Android CAB和listview,android,sql,listview,delete-row,Android,Sql,Listview,Delete Row,My使用SimpleCursor适配器在主活动中填充listview。我没有尝试使用上下文操作栏(CAB)从列表和数据库中删除项目。我的主要问题是: 1.这是正确的方法吗。 2.我的deleteRecord方法有什么问题 我的错误是: SQLiteException:near“LIKE”:编译时出现语法错误(代码1)::从离合器状态表中删除,其中\u id LIKE 驾驶室按钮点击代码: public boolean onActionItemClicked(ActionMode
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.action_discard:
//TO DO call action code here
Log.i(TAG, "delete button clicked " + 5);
Integer position = ListView.getCheckedItemPosition();
cursor.moveToPosition(position);
Integer recordID =cursor.getInt(0);
DbHelper.deleteRecord(recordID);
mode.finish(); // Action picked, so close the CAB
Log.i(TAG, "onActionItemClicked method end" + 6);
return true;
default:
return false;
}
}
DbHelper删除方法:
public void deleteRecord(Integer recordID) {
SQLiteDatabase db = this.getWritableDatabase();
// Define 'where' part of query.
String whereClause = ClutchDBContract.clutches._ID + " LIKE ";
// Specify arguments in placeholder order.
String[] whereArgs = { String.valueOf(recordID) };
db.delete("clutchesTable",whereClause,whereArgs);
}
长按代码打开驾驶室
clutchList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
// Called when the user long-clicks on clutchList
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, long id) {
if (mActionMode != null) {
return false;
}
Log.i(TAG, "onLongClick even triggered, CAB not open");
clutchList.setItemChecked(position, true);
// Start the CAB using the ActionMode.Callback defined above
mActionMode = getActivity().startActionMode(mActionModeCallback);
Log.i(TAG, "Call to CAB completed");
return true;
}
});
clutchList.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
//当用户长时间单击列表时调用
@凌驾
长单击公共布尔值(AdapterView arg0,视图,整型位置,长id){
if(mActionMode!=null){
返回false;
}
Log.i(标记“onLongClick偶数触发,CAB未打开”);
离合器列表。setItemChecked(位置,true);
//使用上面定义的ActionMode.Callback启动CAB
mActionMode=getActivity().startActionMode(mActionModeCallback);
日志i(标签“呼叫驾驶室完成”);
返回true;
}
});
它是删除记录
还是删除离合器
?从离合器表中删除,其中类似
\u id的类型为整数。我想要一个字符串来比较。如果要删除一系列id,请使用类似于的方法,其中_id介于12和16之间
(表示一些数字)deleteRecord。String.valueof
是否将其转换为字符串?我知道它存储在我的字符串数组中。我不想要整数。它用于匹配字符串,而不是数字(比如“%had little%”
匹配“Mary had a little lamb”
以及“Paul had a little dog”
)_id是数字字段,不是字符串字段。哦,好的。那我用错接线员了。我觉得=
更合适。但现在我得到了一个类似的错误android.database.sqlite.SQLiteException:near“=”:语法错误(代码1):,编译时:从离合器表中删除,其中_id=at-android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)