2014-02-06 5 views
3

Я пытаюсь отфильтровать свой список с помощью cursoradapter. Это то, что я пробовал до сих пор:Android cursoradapter filter listview

CustomAdapter adapter; 
Cursor cursor; 

etSearch.addTextChangedListener(new TextWatcher(){ 

     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 

     } 

     public void beforeTextChanged(CharSequence arg0, int arg1, 
       int arg2, int arg3) { 
      // TODO Auto-generated method stub 

     } 

     public void onTextChanged(CharSequence cs, int arg1, int arg2, 
       int arg3) { 
      // TODO Auto-generated method stub 

      adapter.getFilter().filter(cs.toString()); 

     } 

    }); 

cursor = dbHelper.getAllItemInventoryListings(); 

    adapter = new CustomAdapter(this, cursor); 

    lv.setAdapter(adapter); 
    lv.setTextFilterEnabled(true); 

    adapter.setFilterQueryProvider(new FilterQueryProvider() { 

     @Override 
     public Cursor runQuery(CharSequence constraint) { 

      String strItemCode = constraint.toString(); 
      return dbHelper.getAllItemInventoryListings(strItemCode); 

     } 
    }); 

Когда я пробовал, он не фильтрует. Что кажется неправильным? Ваша помощь будет оценена по достоинству. Спасибо.

ответ

5

Попробуйте добавить adapter.notifyDataSetChanged(); после adapter.getFilter().filter(cs.toString());

+0

Он работает сейчас! :) благодаря – Dunkey

Смежные вопросы