kotlin AlertDialog使用方法以及kotlin点击事件和长按事件冲突

废话不多比比,直接搂它!

1. kotlin AlertDialog使用方法

问题说明:我在recyclerview的长按点击事件中想要是这一个对话框进行显示,调用方法:
val builder = AlertDialog.Builder(this) 一直报我类型不匹配 然后我传activity.this也是报错
解决方法:(长按点击事件中)

  (staff_recycler.adapter as StarffRecordAdapter).setOnItemChildLongClickListener(object :BaseQuickAdapter.OnItemChildLongClickListener {
                                override fun onItemChildLongClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int): Boolean {
                                    var data:StarffRecordEntity.DateBean = list.get(position)

                                    val item = arrayOf("修改", "删除")
                                    val builder = AlertDialog.Builder(this@StarfRecord)

                                    builder.setTitle("请选择")

                                    builder.setItems(item) { dialog, which ->
                                        if (item[which] == "修改") {
//                                        val name = "Pingshen/edit"
//                                        usergroup = ContractViewEdit::class.java
//                                        PowerDecide.sendPowerPlus(uid, name, this@ContractViewManager, usergroup, daa)
                                        } else if (item[which] == "删除") {
                                        val name = "Hrmdangan/del"
                                            Log.i("idbudui",data.id)
                                        val link = getString(R.string.trans_all) + "Hrmdanganjson/"
                                            postDel(uid, name,this@StarfRecord,data.id , link)
                                        }
                                    }
                                    builder.setNegativeButton("取消", null)
                                    builder.show()
                                   return true
                                }

                            })

2.kotlin点击事件和长按事件冲突

问题说明:首先我使用的是BaseQuickAdapter这个万能适配器框架 我得长按事件出现了,但是当我点击子项item时没反应,我就知道时事件冲突了
解决方法:
如果你的点击事件和长按事件 长按事件不管用 源码中点击的优先级比长按的要高 所以你可以设置 长按事件中的 返回值为true
如果你的和我一样 长按事件管用,单击事件不管用 的解决方法:

检查适配器
class StarffRecordAdapter(data:List<StarffRecordEntity.DateBean>):BaseQuickAdapter<StarffRecordEntity.DateBean,BaseViewHolder>(R.layout.starff_record_item,data) {
    override fun convert(helper: BaseViewHolder, item: StarffRecordEntity.DateBean?) {
        item?:return
      
        helper.addOnLongClickListener(R.id.starff_record_item_tou)//长按事件
                .addOnClickListener(R.id.starff_record_item_tou)//点击事件
    }
}

点击事件

(staff_recycler.adapter as StarffRecordAdapter).setOnItemChildClickListener { adapter, view, position ->
                                var data:StarffRecordEntity.DateBean = list.get(position)
                                var intent = Intent(this,StarfRecordInfo::class.java)
                                intent.putExtra("dashuju",data)
                                startActivity(intent)
                            }

请检查是否写成了setOnItemClickListener 必须写成setOnItemChildClickListener才ok

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以通过以下方式来设置AlertDialog标题和内容的字体大小以及按钮的字体颜色: 1. 设置标题和内容的字体大小 ```kotlin val dialog = AlertDialog.Builder(context).create() dialog.setTitle("Title") dialog.setMessage("Message") // 设置标题和内容的字体大小 val titleTextView = dialog.findViewById<TextView>(android.R.id.alertTitle) titleTextView?.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18f) val messageTextView = dialog.findViewById<TextView>(android.R.id.message) messageTextView?.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f) dialog.show() ``` 在上面的代码,我们获取了AlertDialog的标题和内容的TextView,并使用setTextSize()方法来设置它们的字体大小。 2. 设置按钮的字体颜色 ```kotlin val dialog = AlertDialog.Builder(context).create() dialog.setTitle("Title") dialog.setMessage("Message") // 设置按钮的字体颜色 dialog.setOnShowListener { val positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE) positiveButton.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary)) val negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE) negativeButton.setTextColor(ContextCompat.getColor(context, R.color.colorAccent)) } dialog.show() ``` 在上面的代码,我们在AlertDialog显示之后,获取了PositiveButton和NegativeButton的Button对象,并使用setTextColor()方法来设置它们的字体颜色。我们使用ContextCompat.getColor()方法来获取颜色资源的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安东尼肉店

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值