Kotlin中ListView与RecyclerView怎么用
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,小编给大家分享一下Kotlin中ListView与RecyclerView怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先是item的布局文件:里边放了一个图片和一个文本框
千家信息网最后更新 2025年01月17日Kotlin中ListView与RecyclerView怎么用
小编给大家分享一下Kotlin中ListView与RecyclerView怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
先是item的布局文件:
里边放了一个图片和一个文本框
ListView:
布局文件:
适配器:
class FruitAdapter(privateval context: Context, privateval list : List) : BaseAdapter() { override fun getCount(): Int = list.size override fun getItem(position: Int): Any = list[position] override fun getItemId(position: Int): Long = position.toLong() override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? { var convertView = convertView var holder : ViewHolder? = null if (convertView == null){ holder = ViewHolder() convertView = View.inflate(context,R.layout.item_list_view,null) holder.textView = convertView.findViewById (R.id.textView) as TextView holder.imageView = convertView.findViewById (R.id.imageView) as ImageView holder.linearLayout = convertView.findViewById (R.id.linearLayout) as LinearLayout convertView.tag = holder }else{ holder = convertView.tag as ViewHolder } holder.textView!!.text = list[position].name holder.imageView!!.setImageResource(list[position].image) holder.linearLayout!!.setOnClickListener { Toast.makeText(context,list[position].name,Toast.LENGTH_SHORT).show() } return convertView } internal class ViewHolder{ var textView : TextView? = null var imageView : ImageView? = null var linearLayout : LinearLayout? = null }}
剩下的就是逻辑处理:
class ListViewActivity : AppCompatActivity() { privateval bean = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_list_view) for (i in 1..100){ bean.add(Fruit(i.toString(),R.drawable.ic_launcher_foreground)) } val adapter = FruitAdapter(this,bean) listView.adapter = adapter }}
RecyclerView:
布局文件:
适配器:
class FruitRecyclerViewAdapter(privateval context: Context,privateval list: List) : RecyclerView.Adapter () { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view : View = LayoutInflater.from(context).inflate(R.layout.item_list_view,null) return ViewHolder(view) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.itemView.textView.text = list[position].name holder.itemView.imageView.setImageResource(list[position].image) holder.itemView.linearLayout.setOnClickListener { Toast.makeText(context,list[position].name,Toast.LENGTH_SHORT).show() } } override fun getItemCount(): Int = list.size class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { privateval textView : TextView = itemView.findViewById(R.id.textView) privateval imageView : ImageView = itemView.findViewById(R.id.imageView) privateval linearLayout : LinearLayout = itemView.findViewById(R.id.linearLayout) }}
逻辑代码:
class RecyclerViewActivity : AppCompatActivity() { privateval bean = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_recycler_view) repeat(3){ for (i in 1..15){ bean.add(Fruit(i.toString(),R.drawable.ic_launcher_foreground)) } } val layoutManger = LinearLayoutManager(this) //layoutManger.orientation = LinearLayoutManager.HORIZONTAL recyclerView.layoutManager = layoutManger val adapter = FruitRecyclerViewAdapter(this,bean) recyclerView.adapter = adapter }}
这里的repeat函数是重复三次,意思就是会有三个1到15,也就是此recyclerView会有45个item.
现在的是纵向滑动的,如果要改成横向的,就把我代码中的注释掉的
//layoutManger.orientation = LinearLayoutManager.HORIZONTAL
取消注释就可以实现横向滑动了,如果不嫌弃难看,布局文件就不用改。
最后是实体类:
class Fruit(val name : String,val image : Int) {}
定义了一个name用来显示名字,定义了一个image,用来显示图片。
看完了这篇文章,相信你对"Kotlin中ListView与RecyclerView怎么用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
布局
文件
代码
图片
就是
横向
注释
篇文章
适配器
逻辑
适配
难看
三个
不用
也就是
函数
名字
完了
实体
意思
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发公司一般加班几点
steam各地区服务器名称
武汉云沸点网络技术
银行软件开发外包
网络安全手抄报参赛
centos搭建中转服务器
潍坊学院期末考试数据库原理
数据库地址的作用
如何登陆挂在远端服务器上的软件
如何启动本地缓存数据库
网络技术挑战赛内容
中国服务器操作系统市场研究报告
数据库怎么导出一个表
服务器集群分类
登录数据库方式
东兴市委网络安全和信息化
手机软件开发编程学习
西安智园软件开发
数据库+首选
校园网络安全培训小结
山东潍坊华企软件开发
小学生网络安全测试
网络安全等级保护测评计算
惠普服务器虚拟化技术
查找代理服务器
自考网络技术安全
网络安全家长回执单
八开的网络安全手抄报
崇明区推广网络技术厂家
连不上lol服务器