Я использую SearchView
и стандартный ArrayAdapter
адаптер, с помощью adapter.getFilter().filter(newText);
я бегу на поиск, но стандартный поиск работает для метода getFilter
только по первому слову, то есть он легко найдет 2 вариант по запросу "Авто", но по запросу "Авто Нис" вывод будет пустым, что делать?
Я предполагаю, что нужно использовать в адаптере .contains
, но я не могу сделать свой адаптер, у вас есть идеи, как поступить? ̶ (̶C̶u̶s̶t̶o̶m̶A̶d̶a̶p̶t̶e̶r̶) ̶
public class Menu extends AppCompatActivity {
static SearchView searchView;
static ListView listView;
static ArrayList < String > list;
ArrayAdapter < String > adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.version_1_activity_menu);
searchView = (SearchView) findViewById(R.id.svmenu);
listView = (ListView) findViewById(R.id.lv1);
list = new ArrayList < > ();
adapter = new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
list.add("Taxi");
list.add("Detail for the machine");
list.add("Car");
list.add("Car Nissan");
list.add("Car Nissan CIMA");
list.add("Control system");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText); // IT
return false;
}
});
}