我正在使用过滤,唯一实现的过滤器是按key_name搜索,我还想添加其他键。
public static Cursor fetchCountriesByName(String inputText) throws SQLException {
Log.w(TAG, inputText);
Cursor c = null;
if (inputText == null || inputText.length () == 0) {
c = db.query(DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_NAME, KEY_COUNTRY, KEY_REGION, KEY_PHONE},
null, null, null, null, null);
}
else {
c = db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_NAME, KEY_COUNTRY, KEY_REGION, KEY_PHONE},
KEY_NAME + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (c != null) {
c.moveToFirst();
}
return c;
}
当我尝试使用else {if(它要求(c!= null)时,当我尝试修改时,KEY_NAME +“如'%” + inputText +“%'”,为null,KEY_COUNTRY +“如'%” + inputText +“%'”,KEY_REGION +“ like'%” + inputText +“%'”);在说非法论据例外。
怎么做对?
谢谢。
最佳答案
您忘记在查询中添加条件,例如AND
或OR
检查下面的例子
db.query(true, DATABASE_TABLE,new String[] {KEY_ROWID,
KEY_NAME, KEY_COUNTRY, KEY_REGION, KEY_PHONE},
KEY_NAME + " LIKE ? AND ", KEY_COUNTRY + " LIKE ? AND ", KEY_REGION + " LIKE ?",
new String[] {"%"+inputText+"%" ,"%"+inputText+"%" ,"%"+inputText+"%"},
null, null, null, null);
在这里,我使用了
AND
,您可以根据需要替换它。