Android 는 자동 으로 키워드 와 일치 하고 빨간색 기능 을 표시 합 니 다.
1.단일 키워드 일치
검색 내용 만 일치 하면 간단하게 쓸 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
if (name != null && name.contains(mKeyWord)) {
int index = name.indexOf(mKeyWord);
int len = mKeyWord.length();
Spanned temp = Html.fromHtml(name.substring(0, index)
+ "<font color=#FF0000>"
+ name.substring(index, index + len) + "</font>"
+ name.substring(index + len, name.length()));
holder.tv_name.setText(temp);
} else {
holder.tv_name.setText(name);
}
위의 name 은 전체 item 내용 을 표시 하려 는 것 입 니 다. mKeyWord 는 검색 의 키워드 입 니 다. holder.tv_name 은 현재 textview 컨트롤 입 니 다. 2.다 중 키워드 일치
때때로 우리 가 검색 을 할 때 는 사용자 가 입력 한 키 워드 를 서버 에서 분리 하여 여러 키워드 로 나 누 어 검색 해 야 한다.그러면 서버 에서 데 이 터 를 되 돌려 줄 때 키 워드 는 여러 개 로 나 뉜 다.키워드 배열 로 돌아 간 것 이다.
이 경우 클 라 이언 트 에서 하 겠 습 니 다. 키워드 가 일치 할 때 알고리즘 을 써 서 단락 의 여러 키 워드 를 모두 일치 시 키 고 표시 해 야 합 니 다.
코드 는 다음 과 같 습 니 다:
adapter 의 논리:
/**
name item item
keyList list
*/
StringBuffer str = new StringBuffer("");
str = Utils.addChild(name, keyList, str);
holder.contentTv.setText(Html.fromHtml(str.toString()));
/**
* , HTML
* @param str
* @param inputs
* @param resStr
*/
public static StringBuffer addChild(String str,List<String> inputs,StringBuffer resStr){
int index=str.length();// ,
String next="";// str
for (int i = inputs.size() -1 ; i>= 0;i--) {
String theNext=inputs.get(i);
int theIndex=str.indexOf(theNext);
if(theIndex==-1){//
inputs.remove(i);
}else if(theIndex<index){
index=theIndex;//
next=theNext;
}
}
// , ,
if(index==str.length()){
resStr.append(str);
}else{
resStr.append(str.substring(0,index));
resStr.append("<font color='#FF0000'>"+str.substring(index,index+next.length())+"</font>");
String str1=str.substring(index+next.length(),str.length());
addChild(str1,inputs,resStr);//
}
return resStr;
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.