Kotlin中ListView与RecyclerView怎么用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下Kotlin中ListView与RecyclerView怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先是item的布局文件:里边放了一个图片和一个文本框
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
北京大学微电子软件开发
dm数据库不能创建用户
网络技术跟应用技术有什么区别
购买网络安全保险的企业
数据库选人控件
网络安全主题队会主持词
网络安全发展大会
证券交易软件开发实例
景晨网络技术有限公司
国家对特殊网络安全扶持
网络安全法律规定
南皮县软件开发培训机构
昆明网络安全实战特训营收费标准
宝山区推广软件开发哪个好
菲律宾+软件开发工资多少
交大租房软件开发
计算机三级网络技术知识考点
用友数据库安装教程
如何查看网路服务器配置
网络安全班会开头语
山东大学数据库实验6
云鼎网络技术工作室
广州erp软件开发服务
网络安全的技术论文
服务器和集中存储设备
数据库case语句
网络技术报名
沭阳进口网络技术诚信服务
更新最新的一条数据库
翻译软件开发的三个过程