ArrayAdapter - filtering with multiple search terms

后端 未结 5 1713
臣服心动
臣服心动 2020-12-15 13:00

I have recently added a bounty to this SO question, but realise the original question asks for a SimpleAdapter and not an ArrayAdapter. So, this question relates to the Arra

5条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-15 13:43

    [Complementing the sam's response] Your code will have problems when you digites only spaces. I added an "if".

    // First match against the whole, non-splitted value
    if (valueText.startsWith(prefixString)) {
      newValues.add(value);
    } else {
      // Break the prefix into "words"
      final String[] prefixes = prefixString.split(" ");
      final int prefixCount = prefixes.length;
      // HERE CHANGE
      if (prefixCount>0) {
        int loc;
        // Find the first "word" in prefix
        if (valueText.startsWith(prefixes[0]) || (loc = valueText.indexOf(' ' + prefixes[0])) > -1)
          loc = valueText.indexOf(prefixes[0]);
    
        // Find the following "words" in order
          for (int j = 1; j < prefixCount && loc > -1; j++)
            loc = valueText.indexOf(' ' + prefixes[j], loc + 2);
    
        // If every "word" is in this row, add it to the results
        if (loc > -1)
          newValues.add(value);
      }
    }
    

提交回复
热议问题