• ListView


    ListView

    1.创建一个类作为ListView适配器的适配类型

    class Fruit(val name:String,val imageId:Int)
    

    成员变量包括名字和图片id

    2.编写一个继承ArrayAdapter的适配器:

    class FruitAdapter(activity: Activity,val resourceId:Int,data:List<Fruit>):ArrayAdapter<Fruit>(activity,resourceId,data) {
        override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
            val view = LayoutInflater.from(context).inflate(resourceId,parent,false)//为view加载布局
            val image:ImageView = view.findViewById(R.id.image)
            val name:TextView = view.findViewById(R.id.text)//获取布局中的两个控件
            val fruit = getItem(position)//获取当前项fruit实例
            if(fruit != null){
                image.setImageResource(fruit.imageId)
                name.text = fruit.name//调用实例中的数据设置控件
            }
            return view//返回子布局
        }
    }
    

    ArrayAdapter的三个参数为上下文,布局文件,数据

    重写getView方法返回子布局

    inflate的三个参数:布局文件,上下文,false为标准写法

    获取到imageview和textview控件

    getItem获取list(data)当前项的fruit实例,然后设置图片和文字

    3.修改main

    class MainActivity : AppCompatActivity() {
        private val list = ArrayList<Fruit>()
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            initFruits()
            val adapter = FruitAdapter(this,R.layout.fruit,list)
            listview.adapter = adapter
        }
        private fun initFruits(){
            repeat(2){
                list.add(Fruit("yxy",R.drawable.yxy))
                list.add(Fruit("zcy",R.drawable.zcy))
            }
        }
    }
    

    新建一个Fruit类型的list,获取 FruitAdapter适配器,initfruits向list中添加数据,然后设置list的适配器为 FruitAdapter

    4.总结流程

    要在listview中添加Fruit类型的list --------------> 定义Fruit类 Fruit(val name:String,val imageId:Int)

    向list中添加数据 -----------------> list.add(Fruit("zcy",R.drawable.zcy)) 名字和图片资源

    为我们自定义的Fruit类型创建适配器---------------------->FruitAdapter

    FruitAdapter:作用是适配我们的布局,所以重写getView,返回子布局

  • 相关阅读:
    【math】共线性的影响分析
    【colab】挂载google网盘
    【ML】非均衡样本处理
    phpwind < v6 版本命令执行漏洞
    Uc爆破工具
    shodan:黑客搜索引擎
    webshell下执行命令脚本汇集
    Android利用Fiddler进行网络数据抓包
    150个在线代理站点
    PHP filesystem attack vectors
  • 原文地址:https://www.cnblogs.com/hzoi-poozhai/p/12713696.html
Copyright © 2020-2023  润新知