0

我有一个显示数据库记录的列表视图和一个用于过滤显示项目的 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 字符搜索会显示结果,但区分大小写。我现在才意识到这一点。那么,无论字母是否大写,如何搜索和显示结果呢?

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

0 回答 0