尝试从SQLite数据库中删除字符串 [英] try to delete String from sqlite database
问题描述
我试图删除数据库phoneNumber的,但它不工作。如何删除phoneNumber的
从数据库。我搜索previous职位,但我发现同样的解决方案的code是在这里。但不工作
//删除特定号码
公共布尔deleteNumber(字符串phoneNumber的)
{
返回db.delete(DATABASE_TABLE,KEY_PHONENUMBER +=+ phoneNumber的,NULL)> 0;
}
//列表视图code是这里
// ListView中显示号
setListAdapter(新ArrayAdapter(这一点,android.R.layout.simple_list_item_1,listOfPhoneNumber));
listView.setLongClickable(真);
listView.setOnItemLongClickListener(新OnItemLongClickListener(){ //在龙点击监听器
@覆盖
公共布尔onItemLongClick(适配器视图<>适配器视图,视图观点,INT位置,长的id){
Toast.makeText(ViewNumber.this,listView.getItemAtPosition(位置)的ToString(),Toast.LENGTH_SHORT).show(); numberToDelete = listView.getItemAtPosition(位置)的ToString(); // 弹出菜单
PopupMenu的弹出菜单=新的PopupMenu(ViewNumber.this,视图);
。getMenuInflater()膨胀(R.menu.popupmenu_viewnumber,popupMenu.getMenu());
popupMenu.show(); popupMenu.setOnMenuItemClickListener(新PopupMenu.OnMenuItemClickListener(){
@覆盖
公共布尔onMenuItemClick(菜单项项){ 如果(item.getItemId()== R.id.delete){
Toast.makeText(ViewNumber.this,已删除,Toast.LENGTH_SHORT).show(); //从数据库中删除数
db.open();
布尔检查= db.deleteNumber(numberToDelete);
db.close(); 如果(检查==真)
{
Log.d(NUMBER从数据库中删除,numberToDelete);
} Log.d(numberToDelete,+ numberToDelete);
} 如果(item.getItemId()== R.id.edit){
Toast.makeText(ViewNumber.this,编辑,Toast.LENGTH_SHORT).show();
} 返回false;
}
}); 返回false;
}
});
}
在此先感谢
公共布尔deleteNumber(字符串phoneNumber的)
{
如果(db.delete(DATABASE_TABLE,KEY_PHONENUMBER +=?,新的String [] {} phoneNumber的)0){
返回true;
}其他{
返回false;
}
}
更多信息<一个href=\"http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#delete%28java.lang.String,%20java.lang.String,%20java.lang.String%5B%5D%29\"相对=nofollow> SQLiteDatabase删除
公众诠释删除(字符串表,字符串whereClause,字符串[] whereArgs)
在API级别1
在数据库中删除行的便捷方法。的
参数
的表的表从
删除
的 whereClause 的选购时删除WHERE子句适用。传递null将删除所有行。
的 whereArgs 的您可能会包括哪些内容?where子句,这将是从whereArgs的值来替换秒。该值将被绑定为
字符串。
返回,否则行如果whereClause传递受灾0数。要删除所有行,并获得数通1作为
whereClause。
块引用>i try to delete phoneNumber from database but it is not working. How can i delete phoneNumber from database. I searched previous post but i find same solution the code is here. but not working
// delete a particular number
public boolean deleteNumber(String phoneNumber) { return db.delete(DATABASE_TABLE, KEY_PHONENUMBER + "=" + phoneNumber, null) > 0; }
// list view code is here
// display number in ListView setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, listOfPhoneNumber));
listView.setLongClickable(true); listView.setOnItemLongClickListener(new OnItemLongClickListener() { // On Long Click Listener @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long id) { Toast.makeText(ViewNumber.this,listView.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show(); numberToDelete = listView.getItemAtPosition(position).toString(); // PopUp Menu PopupMenu popupMenu = new PopupMenu(ViewNumber.this, view); getMenuInflater().inflate(R.menu.popupmenu_viewnumber, popupMenu.getMenu()); popupMenu.show(); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == R.id.delete) { Toast.makeText(ViewNumber.this, "Deleted", Toast.LENGTH_SHORT).show(); // deleting number from database db.open(); boolean check = db.deleteNumber(numberToDelete); db.close(); if(check == true) { Log.d("NUMBER del from db", numberToDelete); } Log.d("numberToDelete", "" +numberToDelete); } if (item.getItemId() == R.id.edit) { Toast.makeText(ViewNumber.this, "Edit", Toast.LENGTH_SHORT).show(); } return false; } }); return false; } }); }
Thanks in advance
解决方案public boolean deleteNumber(String phoneNumber) { if(db.delete(DATABASE_TABLE, KEY_PHONENUMBER + "=?", new String[] {phoneNumber})>0){ return true; }else{ return false; } }
more info SQLiteDatabase Delete
public int delete (String table, String whereClause, String[] whereArgs) Added in API level 1 Convenience method for deleting rows in the database.
Parameters
table the table to delete from
whereClause the optional WHERE clause to apply when deleting. Passing null will delete all rows.
whereArgs You may include ?s in the where clause, which will be replaced by the values from whereArgs. The values will be bound as Strings.
Returns the number of rows affected if a whereClause is passed in, 0 otherwise. To remove all rows and get a count pass "1" as the whereClause.
这篇关于尝试从SQLite数据库中删除字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!