Как сделать отфильтрованный выпадающий список выбора формы в формах Android? - PullRequest
0 голосов
/ 05 октября 2018

Моя ситуация такова: когда мой класс AsyncTask запущен, я выполню запрос GET и получу JSONArray с моего сервера, а затем он будет «привязан» к выпадающему / select-option / listView, который отображается ГОРИЗОНТАЛЬНО.Затем у пользователя будет EditText, где он будет печатать, и это отфильтрует список, отображающий элементы, которые содержат запись пользователя.Я работал с этим scenerio с Angular JS, и это прекрасно работало с ng-моделью, ng-repeat и фильтрами ... и т. Д. Я пытаюсь конвертировать мое webApp в Android.Я новичок в Android, и я хотел бы получить пошаговое руководство для достижения этой цели.

1 Ответ

0 голосов
/ 05 октября 2018

Я предлагаю вам простой способ, потому что вы новичок в Android!добавьте эту функцию в свой адаптер listView:

public void filterList(String searchText)
{
    ArrayList<C_ChatListItem> temp = new ArrayList<>();
    adapteritems = backupItems; // copy your Get response in backupItems for new searches in constructor
                                // then in every new search retrieve adapterIems
    if(searchText != null && searchText.length() > 0)
    {
        for (int i = 0 ; i < adapteritems.size() ; i++)
        {
            if(adapteritems.get(i).users_entry.contains(searchText))
                temp.add(item);
        }
        adapteritems = temp;
    }
    notifyDataSetChanged();
}

И в своей деятельности добавьте textWatcher к вашему поиску editText, например:

et_search.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            String txt = et_search.getText().toString();
            adapter.filterList(txt);
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...