2013-09-23 1 views
0

나는 이것이 새로운 질문이 아니며 비슷한 질문을 많이하고 있지만 내 문제는 조금 다릅니다. ListView에서 검색 기능을 구현하려고합니다. 다음과 같은 목록보기가 있습니다 :목록보기를 필터링하는 방법

ListView list; 
List<HashMap<String, String>> myDataCollection; 

XML에서 많은 양의 데이터를 읽고 있습니다.

BinderMyrData bindingData = new BinderMyData(this, myDataCollection);  
list = (ListView) findViewById(R.id.list); 
// Adding items to listview 
inputSearch = (EditText) findViewById(R.id.inputSearch); 
list.setAdapter(bindingData); 
/*** Enabling Search Filter * */ 
inputSearch.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, 
        int arg3) { 
       // When user changed the Text 
        //Some code to be added no clue.. 
       } 

       @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 
       } 
      }); 

거기에 몇 가지 코드를 onTextChanged에 추가해야한다는 것을 알고 있습니다. 나는 어떤 코드가 어떤 단서도 ... 어떤 도움도 높게 평가됩니다.

답변

0

this 주제를 읽었습니까?

ListView에 검색 기능을 적용하는 방법을 완벽하게 설명합니다. 짧은

긴 이야기 :

onTextChanged() 방법

내부 bindingData.getFilter().filter(cs);를 추가하지만 표준 ArrayAdapter<E> 작업하는 경우가 가장 편리한 방법입니다, 당신은 이상한 List<HashMap<String, String>> myDataCollection; 어댑터의 어떤 종류를 사용하는 hashmapped 목록으로. 그래도 작동하지 않는다면 어댑터를 ArrayAdapter<E>과 같은 좀 더 친숙한 어댑터로 변경하는 것이 좋습니다.

+0

감사합니다. 이미 언급 한 주제를 읽었습니다. getFilter는 Hashmap에서 작동하지 않습니다. ArrayAdapter를 사용하려면 전체 코드를 변경해야한다고 생각합니다. – Sid

관련 문제