Проблемы с совместной работой EditText и ListView

198
11 июня 2018, 15:40

На активности есть ListView и EditText. ListView с множественным выбором. EditText нужен для того, что бы искать по символам введенным в него подходящие элементы из ListView, а затем собственно ListView обновлять и оставлять в нем только совпадающие элементы. Код обработки выбора элемента из ListView:

ArrayList<String> list = new ArrayList<>()//Ниже он иницилезируется, но сюда я это не добавил, ибо код там велик
ingridients_lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        SparseBooleanArray sp=ingridients_lv.getCheckedItemPositions();
        selectedItems="";
        for(int i=0;i < list.size();i++){
                if(sp.get(i)) {
                    selectedItems += parent.getItemAtPosition(i) + ",";
                }
        }
        text.setText(selectedItems);
    }
});

Код для EditText:

    inputSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            SearchActivity.this.adapter.getFilter().filter(s);
        }
        @Override
        public void afterTextChanged(Editable s) {
        }
    });

Проблема заключается в том, что при вводе символов в EditText, а затем выборе элементов из обновленного ListView переменная selectedItems становится равна тем элементам, под теми идентификаторами которые у них были в обновленном ListView. После очищения EditTexta'a ListView снова обновляется, приходит в обычное состояние, но выбранные элементы по-прежнему имеют идентификаторы из старого ListView. И при выборе новых элементов уже в прежнем списке переменная selectedItems становится равна тем элементам, чьи идентификаторы из нового ListView совпадают с идентификаторами элементов из старого ListView. Понимаю, что довольно непонятно объяснил, если нужны будут еще разъяснения пожалуйста пишите. Мне очень нужна помощь

p.s Я хочу как раз добиться того, что бы "апельсин" выбранным не оставался, ведь первоначально я выбирал не его, а "зелень"

READ ALSO
Форматирование и сортировка jstl

Форматирование и сортировка jstl

Имеется таблица "Расписание"

197
Как стать android - разработчиком [дубликат]

Как стать android - разработчиком [дубликат]

На данный вопрос уже ответили:

162
Вывод значений пираммидой

Вывод значений пираммидой

Столкнулся с такой проблемой, нужно организовать на сайте вывод данных в ввиде пираммиды, по принцыпу:

162