Привязка данных вызывает метод с несколькими параметрами несколько раз - PullRequest
0 голосов
/ 25 сентября 2018

Я использую DataBinding в своем проекте и добавляю элементы в адаптер списка, используя следующий метод привязки.Проблема, с которой я сталкиваюсь, заключается в том, что, когда я нахожусь в поиске, я хочу, чтобы элементы были добавлены только в listB и в listA, а также в противном случае.Но когда метод addItems вызывается дважды (один раз для изменения элементов, а второй для isSearching), значение изменяется.Таким образом, когда я позже изменяю значение isSearching на false, он снова вызывает метод addItems и снова добавляет элементы в список, что неправильно.Как я могу решить это лучше?

Код:

public void addItems(List<Object> items,boolean isSearching)
    {
        if(!isSearching)
            listA.addAll(items);

        listB.addAll(items);
    }

@BindingAdapter({"adapter","isSearching"})
public void updateList(RecyclerView recyclerView,List<Object> items,boolean isSearching)
{
    MyAdapter myAdapter = (MyAdapter) recyclerView.getAdapter();
    myAdapter.addItems(items,isSearching);
}
...