Android 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

人已赞赏
Android文章

Android ViewPager详解之在FragmentPagerAdapter和PagerAdapter中自如切换

2020-3-3 15:45:07

Android文章

Android百度地图SDK最新详细使用(包含demo)

2020-3-3 17:45:09

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索