2014-09-19 57 views
2

有了這個代碼的Android failes調用SQLite的WHERE列LIKE語句具有0參數

public static List<App> findByKeyword(Context context, String keyword){ 
    ContentResolver resolver = context.getContentResolver(); 
    Uri uri = getContentUri(); 
    String[] projection = DataColumns.ALL; 
    String selection = DataColumns.NAME+" like '%?%' "; 
    String[] selectionArgs = {keyword}; 
    Cursor cursor = resolver.query(uri, projection, selection, selectionArgs, DEFAULT_ORDER); 
    return cursorToList(cursor); 
} 

我得到錯誤

所致 '%%?':java.lang.IllegalArgumentException異常:不能在索引1處綁定參數,因爲索引超出範圍。該語句有0個參數。

SQLite的原始查詢應該是SELECT * FROM table WHERE name LIKE '%?%' 但使用的參數雖然ContentResolver的查詢API的問題

我也使用"報價

它還說

嘗試

該語句有0個參數。

回答

5

嘗試其他方式輪:

String selection = DataColumns.NAME+" like ? "; 
String[] selectionArgs = new String[]{ "%"+keyword+"%" }; 

希望它有助於

+0

它的作品!可以在8分鐘內接受 – 2014-09-19 11:13:35

+0

知道:)! – zozelfelfo 2014-09-19 11:13:54