Пример #1
0
  /**
   * @param searchedInfos 已搜出的结果集合
   * @param start 着色操作在结果集合中的起始位置
   * @param limit 着色操作的数量限定
   * @param keyText 搜索时使用的KeyWord
   * @param dyeStr 结果使用的着色编码 eg.{<font color=#D64206>}
   * @author ZhangZhuo
   * @description 此方法针对全部数据进行着色,使用SearchInfo内建的MATCHTYPE进行区分
   */
  public void javaGetHighLights(
      SearchInfo<T>[] searchedInfos,
      int start,
      int limit,
      String keyText,
      String dyeStr,
      boolean isT9) {
    if (searchedInfos.length == 0) throw new IllegalArgumentException("No searched!");
    if (start >= searchedInfos.length || start < 0) throw new ArrayIndexOutOfBoundsException();
    if (start + limit >= searchedInfos.length) limit = searchedInfos.length - start;
    int[] lastSearchedIndex = new int[limit];
    for (int i = 0; i < limit; i++)
      lastSearchedIndex[i] =
          (searchedInfos[start + i].index << 8) | (searchedInfos[start + i].matchPhoneID & 0xFF);

    String[] resultArray = getHightLights(domainAdr, lastSearchedIndex, keyText, dyeStr, isT9);

    for (int i = 0; i < limit; i++) {
      SearchInfo<T> info = searchedInfos[start + i];
      if (info.matchType.equals(MATCH_TYPE.NameMatch)) {
        info.dyeName = resultArray[i];
        info.dyePhone = info.phoneNum;
      } else {
        info.dyePhone = resultArray[i];
        info.dyeName = info.name;
      }
    }
  }