安卓KotlinStudy

本文介绍了一个使用Kotlin编写的简单应用案例,重点展示了如何实现RecyclerView适配器,并通过自定义监听器处理列表项点击事件。文章还提供了完整的代码示例,包括数据填充、布局设置等关键步骤。

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

//MainActivity

package com.example.helloworld.kotlinstudy

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {



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

        val adapert = KotlinRecAdapter(this,getData()!!)
        rlv.layoutManager= LinearLayoutManager(this)
        rlv.adapter=adapert

        adapert.setOniteClickListener(object :KotlinRecAdapter.OnItemClickLitener{
            override fun onItemClick(position: Int) {
                Toast.makeText(this@MainActivity,"点击"+position,Toast.LENGTH_LONG).show();
            }
        })


    }



    fun getData():ArrayList<String>{
        val arrayList = ArrayList<String>()
        val list = listOf<String>("星期一", "星期二", "星期三", "星期五", "星期一", "星期一", "星期一", "星期一", "星期一")
        //for循环
        for (k in list){
            arrayList.add(k)
        }
        return  arrayList
    }
}


//KotlinRecAdapter适配器


package com.example.helloworld.kotlinstudy

import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView

class KotlinRecAdapter(mCtx: Context, mList:ArrayList<String>) :RecyclerView.Adapter<KotlinRecAdapter.MHolder>(){
    //可以把数据直接放到类名后面,然后用变量接收
    private var context:Context = mCtx
    private var list:ArrayList<String> = mList

    override fun onBindViewHolder(holder: MHolder?, position: Int) {
        // holder?.txtName?  都必须加个?号才可以调用  ?表示可以为空
        holder?.txtName?.text=list.get(position)
        holder?.linearlayout?.setOnClickListener {
            litener?.onItemClick(position)
        }

    }

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MHolder {
        return MHolder(LayoutInflater.from(context).inflate(R.layout.kotlin_item,parent,false))
    }

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


    class MHolder(itemView: View?) : RecyclerView.ViewHolder(itemView) {
        //这里需要从前面一个一个写  直接写itemView.调用是不行的
        var txtName: TextView = itemView!!.findViewById(R.id.tv) as TextView;
        var linearlayout: LinearLayout = itemView!!.findViewById(R.id.linearlayout) as LinearLayout;
    }


    interface OnItemClickLitener {
        fun onItemClick(position : Int)
    }

    var litener:OnItemClickLitener? =null
    fun setOniteClickListener(litener : OnItemClickLitener ){
        this.litener=litener
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值