2013-07-12 2 views
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       
      } 
     }); 
+0

다음 링크가 도움이되지 않습니까? http://stackoverflow.com/questions/2718202/custom-filtering-in-android-using-arrayadapter – gunar

+0

무엇이'adapter2'에 달려 있느냐에 따라 ... – Selvin

+0

ArrayAdapter adapter2; – user836026

답변