我正在使用过滤,唯一实现的过滤器是按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 +“%'”);在说非法论据例外。

怎么做对?

谢谢。

最佳答案

您忘记在查询中添加条件,例如ANDOR

检查下面的例子

    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,您可以根据需要替换它。

10-07 18:59
查看更多