SearchView найти слово + слово .. использовать ArrayList и ListView (CustomAdapter) - PullRequest
0 голосов
/ 06 ноября 2018

Я использую 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;
      }
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...