欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

RecyclerView 的基础使用

程序员文章站 2022-03-10 23:42:33
类class MyListAdapter(private var list: ArrayList, private val activity: FragmentActivity ) : RecyclerView.Adapter() { @SuppressLint("ResourceType") override fun...

class MyListAdapter(private var list: ArrayList<JSONObject>,
                        private val activity: FragmentActivity
    ) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

        @SuppressLint("ResourceType")
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
            // 渲染 card
            val item = LayoutInflater.from(parent.context).inflate(R.layout.这个是重复利用的项单独构成的 xml, parent, false)
            return listViewHolder(item)
        }

        // 加载新项,这个是自定义函数,网络请求到数据后调用
        fun loadData(newList: ArrayList<JSONObject>, isRefresh: Boolean){
            if (isRefresh) {
                // 如果是刷新,清空暂存的所有数据
                list.clear()
            }
            list.addAll(newList)
            notifyDataSetChanged()
        }

        override fun getItemCount(): Int {
            return list.size
        }

        override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
            // 获取当前位置的项,赋值
            val item = list[position]
            holder.itemView.createDate.text = item.getString("createDate")

            holder.itemView.arrow.setOnClickListener {
                // 这里可以执行点击事件
            }
        }

        class listViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){

        }
    }

使用

// 创建数据源
val adapter = activity?.let { MyListAdapter(ArrayList(), it) }     //类的初始化
listRecycle(就是 RecyclerView).layoutManager = LinearLayoutManager(context!!, LinearLayoutManager.VERTICAL,false)   // 必须要有的 layoutmanager,不一定是 linear
listRecycle.adapter = adapter

请求数据

adapter?.let { getList(token, it, false) }    // 传入的值,false 对应的是 isRefresh 参数,表示是否为刷新

下拉刷新和上滑加载时调用请求数据函数并传入对应的参数即可

本文地址:https://blog.csdn.net/weixin_44774877/article/details/108123914

相关标签: 约车 Android