0
나는 목록보기에 국가 목록과 맨 위에있는 검색 상자가 있습니다.목록보기 변경 문자열 시작 부분에만 일치하는 필터
입력 된 텍스트를 기준으로 Listview를 필터링하기 만하면됩니다.
필터를 사용하면 정상적으로 작동합니다. 단, 문자열의 시작 부분 만 일치시켜야하는 반면 입력 된 문자열은 텍스트의 일치 항목과 일치해야합니다. 시작 또는 중간에 일치해야합니다. 예를 들어
, 사용자 유형 "F"가 표시하는 경우 :
부르 키나 파소 포클랜드 제도 페로 제도 피지 핀란드 프랑스
이제, "부르 키나 파소"는 시작되지 않습니다 F가 포함되어있어 방금 F가 포함되어 있기 때문에 표시됩니다.
어떻게 문자열의 시작 부분 만 볼 수 있도록 필터를 변경할 수 있습니까? 당신은 당신이 사용하는 사용하는 현재의 알고리즘이 포함
if (placeName.toLowerCase().startsWith(filterValue.toLowerCase()) {
// add it to the result list
}
처럼 뭔가 방법을 필터링의 당신의 listadapters 필터에서
inputSearch = (EditText) findViewById(R.id.inputSearch);
inputSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text
CountryListViewActivity.this.adapter2.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
다음 링크가 도움이되지 않습니까? http://stackoverflow.com/questions/2718202/custom-filtering-in-android-using-arrayadapter – gunar
무엇이'adapter2'에 달려 있느냐에 따라 ... – Selvin
ArrayAdapter adapter2; –
user836026