#android #kotlin
#Android #kotlin
Вопрос:
У меня возникли проблемы с сообщением if при удалении некоторых данных из моей корзины.
У меня есть некоторые данные в recyclerview в моем фрагменте корзины, также есть кнопка для удаления всех этих данных из корзины.
Я использовал статус if, чтобы проверить, есть ли данные (продукты) в базе данных или нет.
При нажатии кнопки удаления, если в базе данных есть какие-либо данные, выполняется запрос удаления и удаляются все данные. в противном случае данных нет, поэтому просто выведите сообщение для пользователя: продукта для удаления нет.
Проблема заключается в том, что если statment выполняется и данные успешно удаляются, после этого также выполняется statment else . Как я мог это предотвратить?
Код :
CartFragment : Fragment ()
val btnTrashAll: ImageButton = viewitem.findViewById(R.id.trash_icon_cart)
getAllProductFromCart(btnTrashAll)
fun getAllProductFromCart(button: ImageButton) {
val animation: Animation =
AnimationUtils.loadAnimation(context, R.anim.anim_for_btn_zoom_out)
button.setOnClickListener {
button.startAnimation(animation)
viewmodel.getAllFromCart().observe(this, Observer {
if (!it.isNullOrEmpty()) {
val alert = AlertDialog.Builder(view!!.context)
.setMessage("Do you want to delete all ؟")
.setPositiveButton("yes") { dialog, which ->
viewmodel.deleteAllFromCart()
Toast.makeText(
view!!.context,
"Deleted Successfully .",
Toast.LENGTH_SHORT
).show() }
.setNegativeButton("No", null)
.show()
} else {
Toast.makeText(
view!!.context,
"There is no Product for delete",
Toast.LENGTH_SHORT
).show()
}
})
}
Комментарии:
1.
viewmodel.getAllFromCart().observe(this, Observer
это наблюдение за чем-то, что означает, что код внутри может выполняться несколько раз.2. все в порядке, вы можете опубликовать свой собственный ответ или просто удалить свой вопрос 🙂