я пытаюсь создать диалоговое окно предупреждения для элемента адаптера. Мне удалось сделать это на java, но я пытаюсь сделать это на kotlin.
Это основной класс, где я запускаю адаптер.
fun buildDetailsAdapter() {
//recicler view saleDetails
val saleDetail = SaleDetail()
val saleDetailList = saleDetail.getSaleDetailsbyIdSaleHeader(idSaleHeader)
Log.i(TAG, "buildProductsAdapter " + saleDetailList.size)
val saleDetailAdapter = PreProductDevolutionKAdapter(saleDetailList, context)
saleDetailAdapter.setOnClickListener(View.OnClickListener { v ->
val builder = AlertDialog.Builder(this)
builder.setTitle("Androidly Alert")
builder.setMessage("We have a message")
//builder.setPositiveButton("OK", DialogInterface.OnClickListener(function = x))
builder.setPositiveButton(android.R.string.yes) { dialog, which ->
Toast.makeText(applicationContext,
android.R.string.yes, Toast.LENGTH_SHORT).show()
}
builder.setNegativeButton(android.R.string.no) { dialog, which ->
Toast.makeText(applicationContext,
android.R.string.no, Toast.LENGTH_SHORT).show()
}
builder.setNeutralButton("Maybe") { dialog, which ->
Toast.makeText(applicationContext,
"Maybe", Toast.LENGTH_SHORT).show()
}
builder.show()
})
rcvProductDevolution.adapter = saleDetailAdapter
}
Это класс адаптера
class PreProductDevolutionKAdapter(val items : List<SaleDetail>, val context: Context) : RecyclerView.Adapter<ViewHolder>() {
private var listener: View.OnClickListener? = null
override fun onCreateViewHolder(parent: ViewGroup, p1: Int): ViewHolder {
return ViewHolder(LayoutInflater.from(context).inflate(R.layout.adapter_pre_product_devolution_k, parent, false))
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.txtIdProductSaleDetailsAdapter.text = items[position].idProduct.toString()
holder.txtQuantitySaleDetailsAdapter.text = items[position].quantity.toString()
holder.txtQuantityToReturnAvailable.text = items[position].quantityReturn.toString()
holder.txtUnitSaleDetailProductValue.text = items[position].unitValue.toString()
holder.txtValuetotSaleDetailsAdapter.text = items[position].totValue.toString()
}
// Gets the number of animals in the list
override fun getItemCount(): Int {
return items.size
}
fun setOnClickListener(listener: View.OnClickListener) {
this.listener = listener
}
}
class ViewHolder (view: View) : RecyclerView.ViewHolder(view) {
// Holds the TextView that will add each animal to
val txtIdProductSaleDetailsAdapter: TextView = view.txtIdProductSaleDetailsAdapter
val txtQuantitySaleDetailsAdapter: TextView = view.txtQuantitySaleDetailsAdapter
val txtQuantityToReturnAvailable: TextView = view.txtQuantityToReturnAvailable
val txtUnitSaleDetailProductValue: TextView = view.txtUnitSaleDetailProductValue
val txtValuetotSaleDetailsAdapter : TextView= view.txtValuetotSaleDetailsAdapter
}
Вид адаптера раздувается нормально, и информация отображается, как и ожидалось, но когда я нажимаю на элемент, ничего не происходит.
Любая помощь или предложения были бы хорошими. спасибо