/** * @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; } } }