我有一个列表视图,用于显示数据库的记录,还有一个textWatcher用于过滤显示的项目。问题是这适用于拉丁字符,但不适用于unicode。但Unicode显示正常。 以下是相关代码:
etFilter.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
dataAdapter.getFilter().filter(s.toString());
}
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
dataAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
return provider.fechDobjectsByName(constraint.toString());
}
});
我在这里找不到任何相关的问题。有谁知道怎么做? 编辑: 对不起,这是我的错。使用Unicode字符搜索显示结果,但区分大小写。我刚才意识到这一点。 那么,无论字母是否为Capital,如何搜索和显示结果?
public Cursor fechDobjectsByName(String inputText) throws SQLException {
Cursor mCursor = null;
if (inputText == null || inputText.length () == 0) {
mCursor = database.query(DbHelper.TABLE_SONGS,
new String[] {DbHelper.COLUMN_ID,
DbHelper.COLUMN_SONGNAME, DbHelper.COLUMN_SONGARTIST,
DbHelper.COLUMN_SONGGENRE},
null, null, null, null, null);
}
else {
mCursor = database.query(true, DbHelper.TABLE_SONGS,
new String[] {DbHelper.COLUMN_ID,
DbHelper.COLUMN_SONGNAME, DbHelper.COLUMN_SONGARTIST,
DbHelper.COLUMN_SONGGENRE},
DbHelper.COLUMN_SONGNAME + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;