whereArgs SQLite数据库删除

我试图删除一个sqlite数据库中的几行编程为Android和我想知道什么whereArgs在这个文档中指的是:

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#delete(java.lang.String中,%20java.lang.String,%20java.lang.String [])

有人能给我一个例子吗?

Solutions Collecting From Web of "whereArgs SQLite数据库删除"

whereArgs是where子句的值。 当你使用“?” (占位符)在第二个参数( whereClause ),你必须提供whereArgs 。 详情请看这个post 。

在第二个参数(whereClause)的末尾加上“ =? ”,就像这样:

 delete(CONTENT_URI, TEXT + "=?", new String [] { text } ); 

number of ? 是参数的数量。

占位符? 不工作(越野车) – 所以你需要构buildwhereClause(select)并发送空参数(selectionArgs)

例如:使用用户search文本加载dynamic列表:

  mCustomerMenuList = (ListView)findViewById(R.id.customer_menu_list); mSearchText = (EditText)findViewById(R.id.autoCompleteTextView1); mSearchText.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable t) { //Reload the query using the search text ManageMyCustomerMenuList(); mCustomerMenuList.setAdapter(mAdapter); } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count) { // Auto-generated method stub } }); 

并在你的ManageMyCustomerMenuList()查询代码中放置如下所示的内容:

 String s = mSearchText.getText().toString().toLowerCase(); String whereClause = Browser.BookmarkColumns.TITLE+" LIKE ?"; String whereArgs [] = new String[] {"%" +s+"%"}; mCustomerCursor = managedQuery(android.provider.Browser.BOOKMARKS_URI, new String[] { Browser.BookmarkColumns._ID, Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }, whereClause, whereArgs, mSqlLimit ); mAdapter = new SimpleCursorAdapter(this, R.layout.row_layout_test, mCustomerCursor, new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }, new int[] { R.id.test_layout_view1, R.id.test_layout_view2 } );