Я пытаюсь обновить корзину при каждом щелчке по элементу, и я тоже это делаю. Но проблема в том, что я хочу, чтобы при нажатии на тот же элемент количество продукта увеличивалось, а полный элемент не добавлялся снова. Ниже мой Dao Interface
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertTask(CartItemEntity cartItemEntity);
@Query("SELECT * from CartItemEntity WHERE id= :id")
CartItemEntity getItemById(int id);
@Query("UPDATE CartItemEntity SET quantity = quantity + 1 WHERE id = :id")
void updateQuantity(int id);
И это мой метод InsertAndUpdate в репозитории
void insertOrUpdate(CartItemEntity cartItemEntity) {
final CartItemEntity[] cartItemEntity1 = {null};
Log.d("check", cartItemEntity.getName());
new AsyncTask<Void,Void,Void>() {
@Override
protected Void doInBackground(Void... voids) {
cartItemEntity1[0] = noteDatabase.daoAccess().getItemById(cartItemEntity.getId());
Log.d("check",cartItemEntity1[0].getName());
return null;
}
}.execute();
if (cartItemEntity == cartItemEntity1[0]) {
updateItem(cartItemEntity.getId());
} else {
insertTask(cartItemEntity);
}
}
Я помещаю запись журнала, и то, что я нахожу, находится внутри метода InsertAndUpdate
cartItemEntity1[0] = noteDatabase.daoAccess().getItemById(cartItemEntity.getId());
возвращает ноль независимо от того, нажата ли кнопка только в первый раз или несколько раз