Я создаю приложение для Android, в котором есть список, а поиск фильтруется через EditText.
Что я хочу знать, так это то, как Instagram (например) показывает предварительный просмотр поисков, разделенных на категории?
Позвольте мне объяснить лучше, если я посмотрю в Instagram, например, «Лондон», я выйду в список полей, где, например, есть значок города и рядом со словом «Лондон», внизу есть поле с « На нем написано #london, а внизу еще одно поле с надписью «London» и фотографией пользователя.
Как называются запросы, разделенные на категории или разделы в «Программировании»?
Я хотел бы сделать это в своем приложении, но проблема в том, что я не знаю, как это назвать.
Если у меня есть список и я хочу отфильтровать его с помощью поиска, когда я набираю слово «Лондон», он сразу же показывает мне элементы с тем же именем, что и «Лондон», вместо этого я хочу поиск, как в Instagram, где результаты отфильтрованные первые категории, а затем, когда вы нажимаете на категорию, он показывает вам результаты.
Как называется эта практика?
Используйте что-то вроде:
private ArrayAdapter<String> mAdapter;
private String[] data = {"myname","myname2","myname3","myname4","myname5"};
private EditText searchBox;
private ListView mListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
searchBox = findViewById(R.id.searchBox);
mListView = findViewById(R.id.mListView);
mListView.setTextFilterEnabled(true);
mAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, data);
mListView.setAdapter(mAdapter);
searchBox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
MainActivity.this.mAdapter.getFilter().filter(arg0);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
Теперь, если вы введете «myname2» в текст редактирования, ListView покажет только его. Вы можете использовать аналогичный подход в случае GridView/RecyclerView.