安卓 3.0 kotlin的recyclerviewc的

本文详细介绍了如何在Android应用中使用RecyclerView组件,包括定义布局样式、创建对应的Bean类及Adapter实现,最后通过MainActivity展示了完整的使用流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


布局样式 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </LinearLayout>

    <ImageView
        android:id="@+id/imageview"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:layout_marginTop="60dp"
        android:src="@mipmap/ic_launcher" />
    <Button
        android:id="@+id/jion"
        android:layout_marginTop="20dp"
        android:background="@color/colorPrimary"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登陆"
        android:textSize="20sp"
        />
    <android.support.v7.widget.RecyclerView
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lvlist"
        />
</LinearLayout>

item的布局样式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_marginTop="10dp"
        android:text="22222222222222222"
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        android:text="22222222222222222"
        android:id="@+id/id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

bean类的写法

class Student {
    var name: String? = null
    var id: String? = null

    constructor(name: String?, id: String?) {
        this.name = name
        this.id = id
    }
}

recyclerview的adapter实现方式

package com.pax.cn.kotlion

import android.content.Context
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.RecyclerView.Adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.pax.cn.kotlion.RecyleAdapter.MyViewholder

/**
 * 作者:Created by tang on 2017/6/20/020 16:02
 */

class RecyleAdapter : Adapter<MyViewholder> {
    private var context: Context? = null
    private var itemList: ArrayList<Student>? = null

    constructor(itemList: ArrayList<Student>, context: Context) {
        this.context = context
        this.itemList = itemList
    }


    override fun onBindViewHolder(p0: MyViewholder?, p1: Int) {
        p0!!.name.text = itemList!!.get(p1).name
        p0.id.text = itemList!!.get(p1).id
    }

    override fun getItemCount(): Int {
        return itemList?.size as Int
    }

    override fun onCreateViewHolder(p0: ViewGroup?, p1: Int): MyViewholder {
        return MyViewholder(LayoutInflater.from(context).inflate(R.layout.item, p0, false))
    }

    class MyViewholder : RecyclerView.ViewHolder {
        constructor(itemView: View?) : super(itemView) {
            name = itemView?.findViewById(R.id.name) as TextView
            id = itemView.findViewById(R.id.id) as TextView
        }

        var name: TextView
        var id: TextView
    }
}

class MainActivity : AppCompatActivity() {
    var itemList = ArrayList<Student>()
    private var adapter :RecyleAdapter?=null
//    var itemList = ArrayList<String>()
//    private var adapter :TestAdapter?=null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        inidata()

       adapter = RecyleAdapter(itemList, this)
        lvlist.layoutManager = LinearLayoutManager(this)
//        adapter = TestAdapter(itemList, this)
        jion.setOnClickListener({
            //Toast.makeText(this,"进入" ,Toast.LENGTH_SHORT).show()
           lvlist.adapter =adapter
        })
    }

    fun inidata() {
        var i: Int = 0
        var end: Int = 10
        while (i < end) {
            var student=Student("名字"+i,"学号"+i)
            itemList.add(student)
//            itemList.add(""+i)
            i++
        }
    }

}
效果图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值