我的名字是Michael,我正在编写一个Android应用程序,它将作为一个非常基本的课程安排应用程序。到目前为止,我已经能够编写程序,以便我能够创建和添加新的类到数据库,但我似乎无法弄清楚如何从数据库中删除选定的条目。保存条目的按钮定义如下:
<Button
android:id="@+id/save"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Save" />
并且它激活的监听器是:
private View.OnClickListener onSave=new View.OnClickListener() {
public void onClick(View v) {
String type=null;
switch (types.getCheckedRadioButtonId()) {
case R.id.math:
type="math";
break;
case R.id.cs:
type="cs";
break;
case R.id.pe:
type="pe";
break;
case R.id.elective:
type="elective";
break;
}
if (restaurantId==null) {
helper.insert(name.getText().toString(),
address.getText().toString(), type,
notes.getText().toString());
}
else {
helper.update(restaurantId, name.getText().toString(),
address.getText().toString(), type,
notes.getText().toString());
}
finish();
}
};
'insert()'方法是我的助手类中添加条目的函数。
具体问题是我在帮助程序类中编写'remove()'函数时遇到问题。我尝试使用getWritableDatabase.delete()函数,但是我无法找到正确的参数。朝着正确方向的任何一点对我都有很大的帮助。提前谢谢。
如果它有帮助,这就是insert()函数:
public void insert(String name, String address,
String type, String notes) {
ContentValues cv=new ContentValues();
cv.put("name", name);
cv.put("address", address);
cv.put("type", type);
cv.put("notes", notes);
getWritableDatabase().insert("restaurants", "name", cv);
}
答案 0 :(得分:3)
你对这样的事情感兴趣吗?
public void deleteValue(String value)
{
SQLiteDatabase db = getWritableDatabase();
String whereClause = "name"+"=?";
String[]whereArgs = new String[] {String.valueOf(value)};
db.delete(TABLE_NAME, whereClause, whereArgs);
db.close();
Log.v("done","deleted row ");
}
这里deleteValue()的参数值是我们愿意删除行的参数值(比如根据名称删除行),所以我们将它用作where子句。
见行
String whereClause = "name"+"=?";
String[]whereArgs = new String[] {String.valueOf(value)};
这可以假设为删除语句,其中where子句为where name = value;