У меня есть следующие методы в MainActivity -
private ArrayList<User> usersList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fetchUserList();
}
private void fetchUserList() {
userViewModel = ViewModelProviders.of(this).get(UserViewModel.class);
final Observer<List<User>> userObserver = users -> {
usersList = (ArrayList) users;
initViewsAndListeners();
addCards();
};
userViewModel.getAllUsers().observe(this, userObserver);
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я перехожу к настройкам приложения и очищаю данные приложения, он оставляет одного (последнего) пользователямассив в памяти, и по некоторым причинам обратный вызов вызывается дважды, а не один раз. Это означает, что после очистки данных приложения я получаю еще одну итерацию метода addCards()
, и добавляются карты, которые не следует добавлять. Почему это случилось? не очистка данных приложения убивает все? почему он оставляет один элемент в массиве?
Кстати, моя комнатная база данных добавляет 3 жестко закодированных объекта пользователя.
edit -
вот мой addCards()
метод -
@Override
public void onClick(View view) {
int buttonTag = Integer.valueOf(String.valueOf(view.getTag()));
TinderCardView topCardOnStack = tinderStackLayout.getTopCardOnStack();
topCardOnStack.handleButtonPressed(buttonTag);
}