2013-12-10 5 views
1

я смотрел на следующем сайте: ListView ExampleКак искать в ListView с пользовательским адаптером

, который описывает, как реализовать функцию поиска в виде списка, который использует адаптер по умолчанию, и она отлично работает.

Как изменить его, чтобы я мог использовать его для пользовательского адаптера для своего списка?

Частичный код:

 dataList = (ListView) findViewById(R.id.lvFiles); 
     tvQuote = (TextView) findViewById(R.id.tvDisplay); 
     tvQuote.setTypeface(Typeface.createFromAsset(MainActivity.this.getAssets(), "fonts/roboto.ttf")); 

     for (int y=0; y<strNamesOfAllah.length;y++) { 
      name = strNamesOfAllah[y]; 
      meaning = strMeaning[y]; 
      rowsArray.add(new SetRows(R.drawable.icon, name, meaning)); 
     } 
     adapter = new SetRowsCustomAdapter(MainActivity.this, R.layout.customlist, rowsArray); 
     dataList.setAdapter(adapter); 
     dataList.setClickable(true); 

ответ

1

Вы должны переопределить getFilter внутри адаптера и возвращает новый объект customFilter, который вы создаете. Смотрите этот ответ: No results with custom ArrayAdapter Filter

Edit:

@Override 
    public Filter getFilter() { 
     if(customFilter == null){ 
      customFilter = new CustomFilter(); 
     } 
     return customFilter; 
    } 
+0

Я нашел хороший пример здесь: http://www.9android.net/add-search-function-to-custom-listview/, но я не являюсь как изменить getFilter() для работы с моим базовым адаптером (http://pastebin.com/zSsv7862) – Si8

+0

Просто переопределите getFilter и создайте новый, если он уже не существует, см. мое редактирование выше – pat

+0

Это полный код? Я нашел функцию пользовательского фильтра, но некоторую переменную, с которой я запутался. Вы можете взглянуть? – Si8

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