2016-09-28 77 views
0

我試圖過濾buttonclick上的listview,但我的數據庫查詢返回一個空的光標。我找不到問題所在。有人知道爲什麼遊標返回空嗎?android sqlite:光標從數據庫查詢返回空,但不應該

這裏是我的代碼:

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; 
} 

我都試過查詢,你可以看到,但都返回一個空指針。 行正確插入我的數據庫,因爲一切正常,所以這不能成爲我的問題的原因。

在此先感謝!

+0

嘗試'「%」 +查詢+「%」'在'selectionArgs' – pskink

+0

你嘗試手動直接執行SQL語句到你的數據庫的命令接口? – user1506104

+0

@pskink:仍然返回空遊標 –

回答

1

你可能想嘗試使用getText().toString();。由於在這一行:

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

非常感謝你!這是問題所在。現在光標返回正確的內容。 :) –

+0

很高興我能幫助:D – Zozinski