Просмотр списка фильтров Android, например Instagram

Я создаю приложение для Android, в котором есть список, а поиск фильтруется через EditText.

Что я хочу знать, так это то, как Instagram (например) показывает предварительный просмотр поисков, разделенных на категории?

Позвольте мне объяснить лучше, если я посмотрю в Instagram, например, «Лондон», я выйду в список полей, где, например, есть значок города и рядом со словом «Лондон», внизу есть поле с « На нем написано #london, а внизу еще одно поле с надписью «London» и фотографией пользователя.

Как называются запросы, разделенные на категории или разделы в «Программировании»?

Я хотел бы сделать это в своем приложении, но проблема в том, что я не знаю, как это назвать.

Если у меня есть список и я хочу отфильтровать его с помощью поиска, когда я набираю слово «Лондон», он сразу же показывает мне элементы с тем же именем, что и «Лондон», вместо этого я хочу поиск, как в Instagram, где результаты отфильтрованные первые категории, а затем, когда вы нажимаете на категорию, он показывает вам результаты.

Как называется эта практика?

1
0
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте что-то вроде:

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.

Другие вопросы по теме