【问题标题】:android sqlite: cursor from database query returns empty but shouldn'tandroid sqlite:来自数据库查询的游标返回空但不应该
【发布时间】:2016-09-28 09:16:38
【问题描述】:

我正在尝试在 buttonclick 上过滤列表视图,但我的数据库查询返回一个空光标。我找不到问题出在哪里。有人知道为什么光标返回空吗?

这是我的代码:

private void initSearch() {
    searchText = (EditText) findViewById(R.id.search_edit_text);

    ImageButton searchEntry = (ImageButton) findViewById(R.id.button_search_entry);
    searchEntry.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            view.startAnimation(buttonAnimation);
            String catchword = searchText.toString();
            if (catchword.equals("")) {
                Toast.makeText(SearchActivity.this, noCatchword, Toast.LENGTH_LONG).show();
            } else {
                Cursor match = myDb.getWordMatches(catchword); //cursor is empty

                cursorAdapter.swapCursor(match);
                cursorAdapter.notifyDataSetChanged();
            }
        }
    });
}

这里是数据库方法:

public Cursor getWordMatches(String query) {
    //Cursor c = database.rawQuery("SELECT * FROM "+TABLE_NAME+ " WHERE "+COL_HEAD+ " = '%" +query+"%' OR " +COL_TEXT+ " = '%"+query+"%'", null);
    Cursor c = database.rawQuery("SELECT * FROM " + TABLE_NAME+ " WHERE "+COL_HEAD+ " LIKE ? OR "+COL_TEXT+ " LIKE ?", new String[]{query});
    if(c != null){
        c.moveToFirst();
    }
    return c;
}

如您所见,我已经尝试了这两个查询,但都返回一个空游标。 这些行已正确插入到我的数据库中,因为其他一切正常,所以这不是我的问题的原因。

提前致谢!

【问题讨论】:

  • 在您的selectionArgs 中尝试"%"+query+"%"
  • 您是否尝试过手动将 SQL 语句直接执行到数据库的命令界面中?
  • @pskink:仍然返回空光标
  • 试试这个Cursor c = database.rawQuery("SELECT * FROM " + TABLE_NAME+ " WHERE "+COL_HEAD+ " LIKE ? OR "+COL_TEXT+ " LIKE ?", new String[]{query,query});
  • @user1506104 不,我不知道它是如何工作的

标签: android sqlite cursor


【解决方案1】:

您可能想尝试使用getText().toString();。如这一行:

String catchword = searchText.getText().toString();

【讨论】:

  • 非常感谢!这就是问题所在。现在光标返回正确的内容。 :)
  • 很高兴我能帮上忙:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多