I use SearchView and the standard ArrayAdapter adapter, using adapter.getFilter().filter(newText) ; I produce a search, but the standard search for the getFilter method works only on the first word, that is, it will easily display option 2 for the query "Auto", but for the query "Automotive car" the output will be empty, what to do?
I suppose that you need to use .contains in the adapter .contains but I cannot .contains my adapter, do you have any ideas how to proceed?
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("Справка"); list.add("Деталь для станка"); list.add("Чайник"); list.add("Автомобильное кресло"); list.add("Автомобильное кресло премиум"); list.add("Вопросы"); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { adapter.getFilter().filter(newText); // ТуТ return false; } }); }