Android kotlin使用RecyclerView实例

1、创建entity类

class InternentBarEntity {var bname: String? = nullvar barea: String? = nullvar badddata: String? = nullvar bimage: String? = nullvar bid: String? = null
}

2、创建adapter类

/***作者:created by meixi*邮箱:15913707499@163.com*日期:2019/5/29 10*/
class InternetBarAdapter( private val entityList: List<InternentBarEntity>) : RecyclerView.Adapter<InternetBarAdapter.ViewHolder>() {private var mOnItemClickListener: OnItemClickListener? = nulloverride fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {val view = LayoutInflater.from(parent.context).inflate(R.layout.tab_item, null)return ViewHolder(view)}override fun onBindViewHolder(holder: ViewHolder, position: Int) {val entity = entityList[position]try {holder.item_intnbname.text = entity.bname} catch (e: Exception) {e.printStackTrace()}//判断是否设置了监听器if (mOnItemClickListener != null) {//为ItemView设置监听器-holder.itemView.setOnClickListener {val position = holder.layoutPosition // 1mOnItemClickListener!!.onItemClick(holder.itemView, position) // 2}}}override fun getItemCount(): Int {return entityList.size}inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {var item_intnbname = itemView.findViewById(R.id.tab_tv) as TextView}//  删除 打勾 全选fun cleckAll(is_checked: Int) { //全选 删除多少那里要删除全部for (a in entityList.indices) {if (is_checked == a) {entityList.get(a).bname = "选中了"} else {}}notifyDataSetChanged()}interface OnItemClickListener {fun onItemClick(view: View, position: Int)}fun setOnItemClickListener(onItemClickListener: OnItemClickListener) {this.mOnItemClickListener = onItemClickListener}
}

3、添加recyclerview依赖

compile('com.android.support:recyclerview-v7:25.1.1') {force = true
}

4、加载数据实现kotlin 代码

private val barEntityList = ArrayList<InternentBarEntity>()
private var barAdapter: InternetBarAdapter? = null
private var lastposion: Int = 0
private var pagenum = 1
private var pageContent:Int = 0
private var pageSize = 10
  public fun initrecycleView(){var internentBarEntity2:InternentBarEntity= InternentBarEntity()internentBarEntity2.badddata = "地址122"internentBarEntity2.bname="名称111222"barEntityList.add(internentBarEntity2)for (a in 0..19) {var internentBarEntity:InternentBarEntity=InternentBarEntity()internentBarEntity.badddata = "地址1"internentBarEntity.bname="名称111=="+abarEntityList.add(internentBarEntity)
//            if (a==6){
//                break
//            }}barAdapter = InternetBarAdapter( barEntityList)barAdapter!!.setOnItemClickListener(object : InternetBarAdapter.OnItemClickListener {override fun onItemClick(view: View, position: Int) {barAdapter!!.cleckAll(position)LgqLogutil.e("ITEM"+position)}})mRecyclerView.layoutManager = LinearLayoutManager(context)mRecyclerView.adapter = barAdaptermRecyclerView.isNestedScrollingEnabled = false//禁止滑动mRecyclerView.isFocusable = false//导航栏切换不再focusemRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {//用来标记是否正在向最后一个滑动,既是否向右滑动或向下滑动internal var isSlidingToLast = falseoverride fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {val manager = recyclerView!!.layoutManager as LinearLayoutManager// 当不滚动时if (newState == RecyclerView.SCROLL_STATE_IDLE) {//获取最后一个完全显示的ItemPositionlastposion = manager.findLastCompletelyVisibleItemPosition()//                    Log.i("lgq","..........dddddd====="+"....."+lastposion);val totalItemCount = manager.itemCountif (lastposion == totalItemCount - 1 && isSlidingToLast) {pagenum++if (pagenum > pageContent) {Toast.makeText(activity,"yidaodi",Toast.LENGTH_LONG).show()return}}}}override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {super.onScrolled(recyclerView, dx, dy)//dx用来判断横向滑动方向,dy用来判断纵向滑动方向//大于0表示,正在向右滚动;小于等于0 表示停止或向左滚动isSlidingToLast = dy > 0}})}

bug在线交流:QQ1085220040

效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DNS记录类型

在之前的文章中&#xff0c;我们了解了什么是DNS以及DNS如何工作&#xff0c;现在让我们来看看 DNS 记录有哪些种类&#xff0c;以及它们有什么作用。 要理解不同的 DNS 记录&#xff0c;首先必须了解区域文件是什么? 我们来解释一下各部分分别表示什么&#xff1a; A 和 AAAA…

Android 频道管理,可拖动item排列,删除,添加

样式效果 1、创建自定义GridView /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;15913707499163.com* 日期&#xff1a;2019/5/31 13*/public class DragGridView extends GridView {/** 点击时候的X位置 */public int downX;/** 点击时候的Y位置 */public int dow…

2019王小的Java学习之路

文章背景 身边有个非常要好的朋友王某某&#xff0c;因为是发小的关系&#xff0c;之后文章统称为王小。 大专毕业后 顺利 的被安排进了某某工厂工作&#xff0c;工作一段时间后&#xff0c;尽管工作比较轻松&#xff0c;却无法忍受终日的流水线生活&#xff0c;经过我的介绍&…

JVM入门到放弃之基本概念

1. 基本概念 jvm 是可运行Java代码的假想计算机&#xff0c;包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 jvm 是运行在操作系统之上的&#xff0c;屏蔽了与具体操作系统平台相关的信息&#xff0c;使得Java程序只需生成在 jvm 上运行的字节码…

java线程并发库之--线程同步工具Exchanger的使用

Exchanger可以在两个线程之间交换数据&#xff0c;只能是2个线程&#xff0c;他不支持更多的线程之间互换数据。今天我们就通过实例来学习一下Exchanger的用法。 Exchanger的简单实例 Exchanger是在两个任务之间交换对象的栅栏&#xff0c;当这些任务进入栅栏时&#xff0c;它们…

了解JVM运行时的内存分配

前言 上文中&#xff0c;在介绍运行时数据区域中的 JAVA 堆时&#xff0c;提到了 JVM 中的堆&#xff0c;一般分为三大部分&#xff1a;新生代、老年代、永久代&#xff0c;本文将进一步了解运行时的内存分配情况。 正文 1.新生代主要用来存放新生(new)的对象。一般占据堆的 …

C#:继承过程中的静态成员

在知乎上看到一个关于“泛基“的实现&#xff0c;感觉挺有意思&#xff0c;想试试效果&#xff0c;代码如下&#xff1a; public abstract class MyBase<T> where T : MyBase<T>{public static string DataForThisType { get; set; }public static T Instance { ge…

Android 分享功能大全

实现效果&#xff1a; 实现步骤&#xff1a; 1、配置SDK 2、 配置平台SDK demo云盘链接&#xff1a;https://pan.baidu.com/s/1DRr85PKtVpuexfyCc2jwsg 在线交流密码&#xff1a;QQ1085220040 demo链接&#xff1a;https://download.csdn.net/download/meixi_android/112506…

fiddler手机端抓包配置

首先&#xff0c;你得安装fiddler&#xff0c;这是前提条件&#xff0c;手机抓包有必须条件&#xff1a; 需要保持电脑和手机在同一个局域网中 &#xff08;这一点&#xff0c;我一般会在电脑上启动一个wifi&#xff0c;然后手机连接即可&#xff09; 下面说一下如何配置&#…

垃圾回收与算法

前边讲到 JVM 运行时内存的地方&#xff0c;关于新生代、老年代中 GC 垃圾回收以及垃圾回收算法&#xff0c;不知是否有点懵懵的&#xff0c;这篇一起了解一下垃圾回收以及垃圾回收算法。 一、垃圾回收需要完成的三件事 哪些内存需要回收&#xff1f;——垃圾对象&#xff08;如…

Android 起调手机QQ,联系客服

1、起调QQ聊天 public void toQQ(){// 跳转之前&#xff0c;可以先判断手机是否安装QQif (isQQClientAvailable(this)) {// 跳转到客服的QQString url "mqqwpa://im/chat?chat_typewpa&uin200870769";Intent intent2 new Intent(Intent.ACTION_VIEW, Uri.p…

jeecg中excel导出字段判空处理

jeecg中excel导出字段判空处理 我们清楚&#xff0c;jeecg 导出 excel 采用的是 easypoi&#xff0c;不知道是否遇到过这种情况&#xff1a; 我们以一个实体属性为例&#xff1a; Excel(name"问题分类",dicCode"xx")private java.lang.String mwoQuestion…

Android LinearLayout加载Fragment

为LinearLayout添加Fragment效果 1、创建Fragment public class Fragment1 extends Fragment {public static Fragment1 getInstance(Bundle bundle) {Fragment1 fg new Fragment1();fg.setArguments(bundle);return fg;}protected View contentView;Overridepublic View onC…