Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在kotlin中设置递增和递减按钮的范围_Android_Firebase_Kotlin_Increment - Fatal编程技术网

Android 在kotlin中设置递增和递减按钮的范围

Android 在kotlin中设置递增和递减按钮的范围,android,firebase,kotlin,increment,Android,Firebase,Kotlin,Increment,我已经为我的大学项目创建了一个应用程序,它是一个获取产品数量并存储在数据库中的应用程序 问题是当我递减时它会低于0(-1,-2…),所以我想设置范围,当我递减时最小值为0,当我递增时最大值为10 截图 这是我的密码 override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { (holder as ViewHolder).bind(cartItems[position]) ho

我已经为我的大学项目创建了一个应用程序,它是一个获取产品数量并存储在数据库中的应用程序

问题是当我递减时它会低于0(-1,-2…),所以我想设置范围,当我递减时最小值为0,当我递增时最大值为10

截图

这是我的密码

 override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    (holder as ViewHolder).bind(cartItems[position])

    holder.itemView.decrement_in_cart.setOnClickListener {
        val databaseHelper = DatabaseHelper(it.context)
        val item_name = holder.itemView.cart_item_name.text.toString()
        val count = holder.itemView.cart_item_count.text.toString().toInt()
        val count_new = databaseHelper.increase_decrease_in_cart("decrement", item_name, count)
        holder.itemView.cart_item_count.text = count_new.toString()
    }

    holder.itemView.increment_in_cart.setOnClickListener {
        val databaseHelper = DatabaseHelper(it.context)
        val item_name = holder.itemView.cart_item_name.text.toString()
        val count = holder.itemView.cart_item_count.text.toString().toInt()
        val count_new = databaseHelper.increase_decrease_in_cart("increment", item_name, count)
        holder.itemView.cart_item_count.text = count_new.toString()
    }

    holder.itemView.remove_from_cart.setOnClickListener {
        val databaseHelper = DatabaseHelper(it.context)
        val item_name = holder.itemView.cart_item_name.text.toString()
        databaseHelper.delete_from_cart(item_name)
        val cartFirebase = Cart_Firebase()
        cartFirebase.updateCart()
    }

}
覆盖BindViewHolder(holder:RecyclerView.ViewHolder,位置:Int){
(作为视图持有者的持有者)。绑定(cartItems[位置])
cart.setOnClickListener中的holder.itemView.decrement\u{
val databaseHelper=databaseHelper(it.context)
val item_name=holder.itemView.cart_item_name.text.toString()
val count=itemCountCheck(holder.itemView.cart\u item\u count.text.toString().toInt())
val count\u new=数据库助手。增加\u减少\u购物车中的\u(“减少”,项目名称,计数)
holder.itemView.cart\u item\u count.text=count\u new.toString()
}
holder.itemView.increment_in_cart.setOnClickListener{
val databaseHelper=databaseHelper(it.context)
val item_name=holder.itemView.cart_item_name.text.toString()
val count=itemCountCheck(holder.itemView.cart\u item\u count.text.toString().toInt())
val count\u new=databaseHelper。在购物车中增加或减少(“增量”,项目名称,计数)
holder.itemView.cart\u item\u count.text=count\u new.toString()
}
holder.itemView.remove_from_cart.setOnClickListener{
val databaseHelper=databaseHelper(it.context)
val item_name=holder.itemView.cart_item_name.text.toString()
databaseHelper.从购物车中删除商品(商品名称)
val cartFirebase=Cart_Firebase()
cartFirebase.updateCart()
}
}
private fun itemCountCheck(值:Int):Int{
如果(值<0){
返回0
}否则,如果(值>10){
返回10
}否则{
返回值
}
}
您可以通过编写一个最小的函数来实现这一点

val count = itemCountCheck(holder.itemView.cart_item_count.text.toString().toInt())
val count_new = databaseHelper.increase_decrease_in_cart("decrement", item_name, count)
holder.itemView.cart_item_count.text = count_new.toString()
你是

  • 读取当前的
    项目\u计数
  • 将其传递给
    databaseHelper
    中的函数并存储结果
  • 将该结果设置为显示屏中的新
    项目计数
因此,您可能应该在
databaseHelper
中处理边界逻辑,因为这是进行验证、计算新计数并告诉您它是什么的事情


(实际上,
databaseHelper
应该在内部保存当前计数,您只需使用项目名称调用“递增”或“递减”,这样它就可以更新并给您一个新的值来显示。您不需要阅读显示来告诉它购物车中当前有什么,知道吗?这种方式存在漏洞和安全问题)

我根据这些值写一个答案​​进来了-1,-2,-3,-4->返回0 | | 0,1,2,3,5…10->返回0,1,2,3,5…10 11,12,13…->返回10谢谢A@ LoalAlgNoByDy最初认为这可能导致问题,但我看到你把函数的结果分配给一个变量,然后使用变量,所以我想它是可行的:)如果你使用实时数据库,你也可以考虑使用解释的事务,或者如果你正在使用云FixSt店,签出。
val count = itemCountCheck(holder.itemView.cart_item_count.text.toString().toInt())
val count_new = databaseHelper.increase_decrease_in_cart("decrement", item_name, count)
holder.itemView.cart_item_count.text = count_new.toString()