Android如何定义列表点击事件(android,开发技术)

时间:2024-05-07 00:21:45 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

列表点击事件的定义

在Adapter内创建接口,并设置set方法

//声明接口interfaceOnItemClickListener{funonItemClick(itemView:View?,pos:Int,itemId:Long)}//设置set方法funsetOnItemClickListener(onItemClickListener:OnItemClickListener){mClickListener=onItemClickListener}

使用Adapter时实现接口

adapter.setOnItemClickListener(object:BaseVastBindingAdapter.OnItemClickListener{overridefunonItemClick(itemView:View?,pos:Int,itemId:Long){if(pos==0){//Somethingdowhenposisequalto0}elseif(pos==1){//Somethingdowhenposisequalto1}else{}}})

但是这也会带来一个问题,就是如果列表项点击事件重复还好说,假如有类似下面的界面

Android如何定义列表点击事件

如果竞赛咨询是打开Activity,办公信息是传输数据,失物招领显示Toast消息,那么全部依靠 pos 判断会让 onItemClick 里面的逻辑变得特别臃肿,同时我们修改item事件时也受 pos 的制约(因为 pos 都是提前定义好的),因此我觉得可以尝试把点击事件声明在 model 里面,例如:

classVastSwipeMenuItem@JvmOverloadsconstructor(privatevalcontext:Context,valtitle:String=context.resources.getString(R.string.default_slide_item_title),valicon:Drawable?=ContextCompat.getDrawable(context,R.drawable.ic_null),valbackground:Drawable?=ContextCompat.getDrawable(context,R.drawable.default_menu_item_background),valtitleColor:Int=ContextCompat.getColor(context,R.color.default_menu_item_title_color),valclickEvent:((VastSwipeMenuItem,Int)->Unit)?=null){ //具体实现}

这样如果我们想定义此 item 对应的点击事件就可以这样:

//声明modelvaldeleteItem=VastSwipeMenuItem(this@SlideActivity)//定义点击事件deleteItem.setClickEvent{item:VastSwipeMenuItem,position:Int->run{Toast.makeText(this@SlideActivity,"${item.title}$position",Toast.LENGTH_SHORT).show()}}

而在Adapter内我们只需如下定义点击事件

ListItemView.setOnClickListener{ //item为根据pos获取到的item.clickEvent?.let{it1->it1(item,position)}}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Android如何定义列表点击事件的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Docker如何部署Mysql,.Net6,Sqlserver等容器下一篇:

17 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18