MyAdapter类
| class MyAdapter<E>( |
| val recyclerView:RecyclerView, |
| val listItemId:Int, |
| val dataResource:List<E>, |
| val func: (data: Any?, view: View) -> Unit, |
| var len:Int?=null |
| ):RecyclerView.Adapter<MyAdapter<E>.ViewHolder>() { |
| |
| init { recyclerView.adapter = this } |
| |
| inner class ViewHolder(val view:View) :RecyclerView.ViewHolder(view) |
| |
| override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { |
| return ViewHolder(LayoutInflater.from(parent.context).inflate(listItemId, parent, false)) |
| } |
| |
| override fun onBindViewHolder(holder: ViewHolder, position: Int) { |
| func(dataResource.get(position),holder.view) |
| } |
| |
| override fun getItemCount(): Int { |
| return len?:dataResource.size |
| } |
| } |
用例示范:
| |
| var adapter = MyAdapter<TestBean>(a.recycler_list, R.layout.list_item_view, list, { data, view -> |
| (data as TestBean).let { |
| view.apply { |
| name_text.text = it.name |
| age_text.text = it.age.toString() |
| work_number.text = it.workNumber |
| } |
| } |
| }) |
| adapter.len = 12 |
| adapter.recyclerView?.layoutManager = LinearLayoutManager(a) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!