直接上代码。

1.附上Activity代码

package com.example.chehang168.kotlindemoimport android.view.View
import android.widget.AdapterView
import com.example.chehang168.kotlindemo.adapter.ListViewAdapter//这里注入可以直接获取xml文件中的id.减少findViewById
import kotlinx.android.synthetic.main.activity_main.*//自己封装的BaseActivity,你们可以忽略。直接继承Activity
class MainActivity : BaseActivity() {private var itemList = ArrayList<String>()private var adapter:ListViewAdapter? = nulloverride fun createView(): Int {return R.layout.activity_main}override fun initView() {//模拟假数据getData()//构造器把参数传递到适配器中adapter = ListViewAdapter(this,itemList)//直接xml文件中id.adapter设置适配器》java中的listView.setAdapter(adapter);listView.adapter = adapter//设置listView点击监听listView.setOnItemClickListener {    adapterView: AdapterView<*>, view:View, i: Int, l: Long ->showShortToast(itemList[i])}}fun getData(){for(i in 0..20){itemList.add("数据>>>>>>>>>>"+i)}}}

2.Adapter代码

package com.example.chehang168.kotlindemo.adapterimport android.app.Activity
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView
import com.example.chehang168.kotlindemo.MainActivity
import com.example.chehang168.kotlindemo.R/*** @Author: shuaishuai* @Time: 2019/2/27 3:35 PM* @Description:适配器*/
//构造器直接写在类后面
class ListViewAdapter(activity: MainActivity, itemList: ArrayList<String>) : BaseAdapter(){private var activity: Activity? = nullprivate var itemList: ArrayList<String>? = null//初始化函数。类似于java中的构造器执行顺序init {this.activity = activitythis.itemList = itemList}override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {var holder: TestViewHoldervar view:Viewif(convertView==null){view = View.inflate(activity, R.layout.list_adapter,null)holder = TestViewHolder(view)view.tag = holder}else {view = convertViewholder = view.tag as TestViewHolder}//直接.text来设置文本。类似与java中的 holder.textView.setText("文本");holder.str.text = itemList?.get(position) ?: ""return view}override fun getItem(position: Int): Any {return itemList?.get(position)!!}override fun getItemId(position: Int): Long {return position.toLong()}override fun getCount(): Int {return itemList?.size!!}class TestViewHolder(var view:View){var str:TextView = view.findViewById(R.id.textContent)}}

Kotlin ListView设置Adapter相关推荐

  1. Android listview与adapter用法

    2019独角兽企业重金招聘Python工程师标准>>> 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListVi ...

  2. listview与adapter用法

    Android listview与adapter用法 listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的 ...

  3. ListView 设置高度为刚好能包裹子元素

    当我们的程序中有多个ListView 时怎么设置ListView 的高度成了一个问题. ListView中数据个数是不确定的,显然不能将高度写死. 但通过测试发现,无论将高度设置为匹配父控件还是包裹内 ...

  4. android 中自定义安装,Android开发中ListView自定义adapter的封装

    [引入] 我们一般编写listView的时候顺序是这样的: •需要展示的数据集List •为这个数据集编写一个ListView •为这个ListView编写一个Adapter,一般继承自BaseAda ...

  5. ListView与Adapter之间的观察者模式

    ListView与Adapter之间的观察者模式 本文用文字叙述不太好描述,主要通过下面这张图来表示: 这张图体现出了主要的关系 首先创建一个MyAdapter继承BaseAdapter public ...

  6. android listview设置选中时的item的背景色

    今天实在不知道写些什么内容,所以自己在网上找了些资料,觉得还可以,所以还是写一下,觉得每天写些东西的习惯不能荒废. 默认情况下使用ListView背景色是黑色,选中item的高亮颜色是菊黄色,很多时候 ...

  7. Android控件——ListView之Adapter提供数据(其二)

    2019独角兽企业重金招聘Python工程师标准>>> 上一节中一些列表集合数据到手机屏幕时,通常采用ListView组件+ArrayAdapter. 虽然它能为我们提供展示数据列表 ...

  8. ListView.setAdapter(adapter);空指针异常的解决的总结

    ListView.setAdapter(adapter);空指针异常的解决的总结 参考文章: (1)ListView.setAdapter(adapter);空指针异常的解决的总结 (2)https: ...

  9. Android记录15--关于ListView中adapter调用notifyDataSetChanged无效的原因

    Android记录15--关于ListView中adapter调用notifyDataSetChanged无效的原因 2014年1月16日 开发记录 话说这个问题已经困扰我很久了,一直找不到原因,我以 ...

最新文章

  1. C/S架构应用程序开发培训笔记
  2. 亚洲游戏行业遭遇史上最大DDoS攻击,微软:我给扛下来了
  3. 乾坤 微前端_前端优秀资源整理(持续更新~)
  4. 远程桌面连接错误:由于安全设置错误,客户端无法连接到远程计算机。
  5. java中的daemon thread
  6. 数据库系统工程师考点
  7. GNS3安装图文教程
  8. 软件测试用例优先级,软件测试用例的优先级划分方法
  9. 每日一题之 hiho1542 无根树变有根树
  10. 【数学之美】豆瓣9.1 颠覆世界的混沌理论
  11. 冷冻水和冷却水的区别
  12. SQL SERVER RBAC权限管理表
  13. win10 以太网消失了
  14. C语言实现最大值、最小值、均值、标准差、峰值因子、方差和百分位数的计算
  15. 小孔成像总结_备战中考|初中物理重要知识点总结,建议收藏!(下篇)
  16. 蓝牙开发经验小结——蓝牙通讯
  17. border-radius 构建规则讲解 及 50% 和 100% 的异同
  18. eclipse项目感叹号
  19. 马达震动测试软件,电机震动如何测试
  20. LXMERT:从Transformers学习跨模态编码器表示LXMERT: Learning Cross-Modality Encoder Representations from Transfors

热门文章

  1. Q4营收猛增仍亏损上亿,Z世代的宠儿Snap何时逼近盈利点?
  2. 谭浩强C程序设计快速复习笔记
  3. 如何写好论文的引言部分
  4. c语言镶嵌循环,讲解C++的do while循环和循环语句的嵌套使用方法
  5. 抖音大咖如何寻找广告主?这三种途径值得了解
  6. 软件智能的大致呈现---aaas系统预期
  7. 5G NSA 和SA 介绍
  8. FFmpeg Invalid data found when processing input
  9. Matlab 安装免费提供的 MinGW-w64 C/C++ 编译器
  10. nginx负载均衡集群(二)