【问题标题】:Android SQL Filterable Query the returns results like "startswith"Android SQL Filterable 查询返回结果,如“startswith”
【发布时间】:2015-02-11 13:45:27
【问题描述】:

以下代码是我在 simple_list_item_1 列表视图中用于编辑文本的代码。但是,当输入单个字符时,过滤器将返回所有内容,但输入第二个字符将返回具有该“模式”的所有内容。

我想要达到的效果类似于“startswith”,这样当在编辑文本中输入单个字符时,所有条目都会针对该字符进行过滤。例如,如果我输入字母 A(大写或小写),我应该看到所有以字母 A 开头的条目。如果是第二个字符。例如输入AB,所有条目都应按照AB过滤。任何人都可以提出一种方法来实现这一点吗?

 public Cursor getFlavorsList (CharSequence constraint)  {
  SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
  queryBuilder.setTables(
    DATABASE_TABLE2
  );

  String asColumnsToReturn[] = { 
        KEY_ROWID, KEY_NAME
  };

  if (constraint == null  ||  constraint.length () == 0)  {
    //  Return the full list
    return queryBuilder.query(mDB, asColumnsToReturn, null, null,
            null, null, DATABASE_TABLE2);
  }  else  {
  String value = "%"+constraint.toString()+"%";

  return mDB.query(DATABASE_TABLE2, asColumnsToReturn, "KEY_NAME like ? ",   new  String[]{value}, null, null, null);
}

【问题讨论】:

    标签: android sql filter android-edittext simplecursoradapter


    【解决方案1】:

    好吧,这让我花了一两个小时,但这是获得您正在寻找的结果的方法。这将过滤输入的第一个字符,而不是像你说的那样返回模式。例如,输入 A,只会显示“A”列表。输入 B,只会显示“B”列表。这也不区分大小写。

    区别是在约束前面去掉“%”。

     public Cursor getflavorlist (CharSequence constraint)  {
        SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
        queryBuilder.setTables(
                DATABASE_TABLE2
        );
    
        String asColumnsToReturn[] = {KEY_ROWID,KEY_NAME};
    
        if (constraint == null  ||  constraint.length () == 0)  {
            //  Return the full list
            return queryBuilder.query(mDb, asColumnsToReturn, null, null,
                    null, null, KEY_NAME);
        }  else  {
            String value = ""+constraint.toString()+"%";
    
            return mDb.query(DATABASE_TABLE2, asColumnsToReturn, "name like ? ", new String[]{value}, null, null, null);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2011-01-19
      • 1970-01-01
      相关资源
      最近更新 更多