Я создал представление списка в андроиде, и я уже реализовать фильтр поиска с помощью SearchView и CharSequence в качестве параметра, как этогоListView фильтр adapter.getFilter(). Фильтр (более одного значения)
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String query) {
adapter.getFilter().filter(query);
return false;
}
});
сейчас как я могу получить результат фильтра более чем одним значением? adapter.getFilter().filter("example" || "example" || example);
можно ли это сделать? или, может быть, я могу использовать filter.getFilter(). filter (array здесь)?
EDIT: это мой фильтр
public class CustomFilter extends Filter {
List<Event> filterList;
EventAdapter adapter;
public CustomFilter(List<Event> filterList, EventAdapter adapter) {
this.filterList = filterList;
this.adapter = adapter;
}
//FILTERING
@Override
protected FilterResults performFiltering(CharSequence constraint) {
//RESULTS
FilterResults results=new FilterResults();
//VALIDATION
if(constraint != null && constraint.length()>0)
{
//CHANGE TO UPPER FOR CONSISTENCY
constraint=constraint.toString().toUpperCase();
ArrayList<Event> filteredEvent=new ArrayList<>();
//LOOP THRU FILTER LIST
for(int i=0;i<filterList.size();i++)
{
//FILTER (tinggal mainin logic aja mau filter berdasarkan apa nya)
if(filterList.get(i).getJudul().toUpperCase().contains(constraint)|| filterList.get(i).getDeskripsi().toUpperCase().contains(constraint))
{
filteredEvent.add(filterList.get(i));
}
}
results.count=filteredEvent.size();
results.values=filteredEvent;
}else
{
results.count=filterList.size();
results.values=filterList;
}
return results;
}
//PUBLISH RESULTS
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
adapter.eventes= (List<Event>) results.values;
adapter.notifyDataSetChanged();
}
}
ya Я это понимаю, есть ли у вас какие-либо сведения об этом случае? или любой учебник, который может помочь мне его создать? –
@PhilipusSilaen нет, но это может быть так же просто, как использование 'String.join()' и 'String.split()' – Karakuri