【发布时间】:2021-01-23 18:56:48
【问题描述】:
我使用Groupie 作为回收视图适配器,并且 我能够在类中调用活动方法。 调用该方法的代码如下所示。
(it.context as <activity_name>).<function_name>()
但问题是我想知道如何从类中的片段调用方法? 这是我的代码
class BindCartItemList(val cartItem: CartList) : Item<GroupieViewHolder>() {
override fun getLayout() = R.layout.ryr_cartlist_with_select
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.itemView.ryr_product_name.text = cartItem.product?.productName
viewHolder.itemView.ryr_quantity.setText(cartItem.quantity.toString())
viewHolder.itemView.ryr_product_barcode.text = cartItem.product?.productBarcode
//compact conversion
val mConvert = FormatConversion()
//default for display price and amount
viewHolder.itemView.ryr_unit_price.text = mConvert.compactAmount(cartItem.product?.price!!)
cartItem.amount = cartItem.quantity * cartItem.product?.price!!
viewHolder.itemView.ryr_amount.text = mConvert.compactAmount(cartItem.amount)
//quantity decrease
viewHolder.itemView.ryr_btn_decrease.setOnClickListener {
cartItem.quantity -= 1
//not allow user set qty < 1
if (cartItem.quantity < 1) {
cartItem.quantity = 1
} else {
//once button press qty and amount will be change
viewHolder.itemView.ryr_quantity.setText(cartItem.quantity.toString())
cartItem.amount = cartItem.quantity * cartItem.product?.price!!
viewHolder.itemView.ryr_amount.text = mConvert.compactAmount(cartItem.amount)
}
(it.context as PosActivity).updateTotalAmount()
}
//quantity increase
viewHolder.itemView.ryr_btn_increase.setOnClickListener {
cartItem.quantity += 1
viewHolder.itemView.ryr_quantity.setText(cartItem.quantity.toString())
cartItem.amount = cartItem.quantity * cartItem.product?.price!!
viewHolder.itemView.ryr_amount.text = mConvert.compactAmount(cartItem.amount)
(it.context as PosActivity).updateTotalAmount()
}
//press container_1 for checkbox
viewHolder.itemView.ryr_container_1.setOnClickListener {
if (viewHolder.itemView.ryr_selected.isChecked) {
viewHolder.itemView.ryr_selected.isChecked = false
cartItem.selected = false
} else if (!viewHolder.itemView.ryr_selected.isChecked) {
viewHolder.itemView.ryr_selected.isChecked = true
cartItem.selected = true
}
}
}
}
这是在活动中有效但在片段中无效的代码
【问题讨论】:
标签: android android-studio kotlin android-fragments