Kotlin实现的一个小小的RecyclerView列表界面及点击事件的简单处理,只为练习手感

没有什么难度,贴个代码吧:

xml布局文件部分:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recyclerview"android:layout_width="0dp"android:layout_height="0dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="100dp"android:id="@+id/itemview"android:background="#f4f4f4"tools:context=".MainActivity"><Viewandroid:id="@+id/content"android:layout_width="0dp"android:layout_height="0dp"app:layout_constraintWidth_percent="0.3"android:layout_marginTop="8dp"android:layout_marginBottom="8dp"android:background="@drawable/shape_item_bg"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World"android:textSize="25dp"app:layout_constraintBottom_toBottomOf="@id/content"app:layout_constraintEnd_toEndOf="@id/content"app:layout_constraintStart_toStartOf="@id/content"app:layout_constraintTop_toTopOf="@id/content" />
</androidx.constraintlayout.widget.ConstraintLayout>

activity部分:

package com.windfallsheng.myktexampleimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.windfallsheng.myktexample.MyAdapter.OnRecyclerViewItemClickclass MainActivity : AppCompatActivity() {//    var dataList =
//        listOf<String>("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N")var dataList = ('A'..'Z').toList()var recyclerview: RecyclerView? = nullvar myAdapter: MyAdapter? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)recyclerview = findViewById<RecyclerView>(R.id.recyclerview)recyclerview?.layoutManager = LinearLayoutManager(this)myAdapter = MyAdapter(dataList = dataList)recyclerview?.adapter = myAdapter//        val onRecyclerViewItemClick = object : OnRecyclerViewItemClick<String> {
//            override fun OnItemClick(view: View?, t: String?, position: Int) {
//                TODO("Not yet implemented")
//            }
//        }myAdapter?.mOnRecyclerViewItemClick = object : OnRecyclerViewItemClick<String> {override fun OnItemClick(view: View?, text: String?, position: Int) {when (view?.id) {R.id.itemview -> Toast.makeText(this@MainActivity,"点击的item位置是${position}",Toast.LENGTH_SHORT).show()R.id.content -> Toast.makeText(this@MainActivity,"点击的item是$text",Toast.LENGTH_SHORT).show()}}}}
}

适配器部分:

package com.windfallsheng.myktexampleimport android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.Adapterclass MyAdapter(var dataList: List<Char>?) : Adapter<MyAdapter.MyViewHolder>() {var mOnRecyclerViewItemClick: OnRecyclerViewItemClick<String>? = nulloverride fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {val view = LayoutInflater.from(parent?.context).inflate(R.layout.rv_item, parent, false)return MyViewHolder(view)}override fun getItemCount(): Int {return dataList?.size ?: 0}override fun onBindViewHolder(holder: MyViewHolder, position: Int) {var context = holder.itemView.contextval content = dataList?.get(position).toString()holder.tvText.text = content// item点击事件的处理holder.itemView.setOnClickListener {mOnRecyclerViewItemClick?.OnItemClick(holder.itemView, content, position)}// item点击事件的处理holder.tvContent.setOnClickListener {mOnRecyclerViewItemClick?.OnItemClick(holder.tvContent, content, position)}}class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {var tvContent: View = itemView.findViewById(R.id.content)var tvText: TextView = itemView.findViewById(R.id.textview)}public interface OnRecyclerViewItemClick<T> {fun OnItemClick(view: View?, t: T?, position: Int)}
}

由于作者水平有限,语言描述及代码实现中难免有纰漏,望各位看官多提宝贵意见!

Hello , World !

感谢所有!

Kotlin实现的一个小小的RecyclerView列表界面及点击事件的简单处理相关推荐

  1. ListView中利用另一方法AdapterView.setOnItemClickListener来设置列表项的点击事件监听器

    对比之间在自定义适配器中设置列表项点击事件监听器的方法, 这里说明第二种方法, 这种办法相对更好,更省内存资源 同是Miwok项目, 举个例子, 在NumbersActivity中可以用一种方法设置列 ...

  2. recyclerview的条目添加点击事件

    在adapter的onBindViewHolder中给view设置点击事件 holder.itemView.setOnClickListener{} 注: adapter代码: package com ...

  3. android 点击item跳转页面,Android RecyclerView Item 点击事件,简单

    在适配器中设置项的点击事件即可,如需跳转Activity,则需要intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_ ...

  4. 安卓MP3播放器开发实例(1)之音乐列表界面

    学习安卓开发有一年了,想想这一年的努力,确实也收获了不少.也找到了比較如意的工作. 今天准备分享一个以前在初学阶段练习的一个项目.通过这个项目我真正的找到了开发安卓软件的感觉,从此逐渐步入安卓开发的正 ...

  5. Android实现qq登录注册和好友列表界面

    学习Android已经有一个多月了,老师留了实现qq登陆注册和好友列表的作业,要求: 设计登录界面,注册界面和好友列表界面. 在登录界面输入用户名"admin",密码"a ...

  6. android列表集合点击事件,给ListeView列表中的每一个Item添加点击事件

    首先声明本文主要是在ArrayAdapter.SimpleAdapter中对ListView的每一项进行点击事件! 先看下运行结果 第一步:在xml布局中写一个ListView android:lay ...

  7. Android 高级UI设计笔记20:RecyclerView 的详解之RecyclerView添加Item点击事件

    1. 引言: RecyclerView侧重的是布局的灵活性,虽说可以替代ListView但是连基本的点击事件都没有,这篇文章就来详细讲解如何为RecyclerView的item添加点击事件,顺便复习一 ...

  8. 从源码角度入手实现RecyclerView的Item点击事件

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6758373.html RecyclerView 作为 ListView 和 GridView 的替代产物, ...

  9. java游戏界面制作_软件设计之基于Java的连连看小游戏(二)——游戏基础界面的制作及事件的添加...

    上次完成到游戏首页的制作,今天完成了游戏基础界面的制作以及事件的简单添加.由于功能尚未完全实现,因此游戏界面的菜单列表只是简单地添加了一下,其余菜单列表以及倒计时等在后续的制作中逐一完善. 1.首先在 ...

  10. RecyclerView实现Item点击事件

    概述 RecyclerView本身没有实现点击事件,需要自定义接口进行实现 接口定义 onRecyclerViewItemClickListener 接口名称随自己喜欢起,放置的位置也随你喜欢,因为是 ...

最新文章

  1. HTML5会砸掉iOS和Android开发者的饭碗么?
  2. java mail smtps,使用javamail发SMTPS邮件,javamailsmtps邮件,Java通常情况下都不会
  3. 06.系统编程-3.进程VS线程比较
  4. Kubernetes二进制部署——Flannel网络
  5. Hadoop真的适合你吗?
  6. java双重循环去重_java List去除重复数据实现
  7. 24_多易教育之《yiee数据运营系统》OLAP平台-运营分析篇
  8. 联想G480安装CentOS电缆驱动器
  9. 详解JAVA对象实例化过程
  10. 含泪整理最优质立秋海报设计素材,你想要的这里都有
  11. docker+ftp+openldap记录接入openldap过程 配置
  12. DellR240服务器U盘引导,【dell uefi u盘引导】dellr730配置uefi引导_dell uefi启动
  13. C#学习资源网站汇总
  14. 《计量地理学》实习指南
  15. autorecover mac的ppt_Office for Mac快捷键之苹果PowerPoint幻灯片PPT篇
  16. php 微信转发朋友圈,php实现的微信分享到朋友圈并记录分享次数功能的讲解
  17. spring中 allowBeanDefinitionOverriding(spring.main.allow-bean-definition-overriding) 分析
  18. Unity 用于投掷物品的一阶贝塞尔曲线
  19. python win32print txt_Python Win32Print打印机状态混乱
  20. 解析百度凤巢系统下的第一次百度更新

热门文章

  1. Linux系列八-type、alias与history
  2. The <Router /> component appears to be a function component that returns报错解决方式
  3. 华中农业大学计算机专业考研,2020华中农业大学计算机专业课改考408
  4. 组网雷达融合处理组件化设计与仿真
  5. 【竞赛篇-竞赛定级及含“金”量】ABC类竞赛如何区分?哪些竞赛被认可?哪些竞赛不太被认可但“值”得参加?
  6. php各版本共存方法,PHP多版本共存解决方案图解
  7. 将分类图像转换为ERDAS可识别的专题图像(Continuous to Thematic)
  8. 【Java】GUI图形化界面中,setBounds()中参数的含义
  9. 手把手教你虚拟机安装(VMware)、Linux操作系统安装
  10. H.264再学习 -- 目前主流的几种数字视频压缩编解码标准(转载)