安卓使用GridView实现网格视图
发布日期:2021-06-29 18:29:31
浏览次数:2
分类:技术文章
本文共 3553 字,大约阅读时间需要 11 分钟。
效果图
主要代码
class FlowerAdapter(private val context: Context, flowerData: ArrayList) : BaseAdapter() { private var mFlowerData = ArrayList () private val mInflaterCatalogListItems: LayoutInflater init { mFlowerData = flowerData mInflaterCatalogListItems = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater } override fun getCount(): Int { return mFlowerData.size } override fun getItem(position: Int): Any { return mFlowerData[position] } override fun getItemId(position: Int): Long { return position.toLong() } override fun getView(position: Int, _convertView: View?, parent: ViewGroup): View { var convertView: View val holder: ViewHolder if (_convertView == null) { holder = ViewHolder() convertView = mInflaterCatalogListItems.inflate( R.layout.adapter_flower, null ) holder.nameTv = convertView.findViewById (R.id.textView) as TextView holder.imageView = convertView.findViewById (R.id.photoView) as ImageView convertView.tag = holder } else { convertView = _convertView holder = convertView.tag as ViewHolder } if (mFlowerData[position] != null) { holder.nameTv?.text = mFlowerData[position].flowerName holder.imageView?.setImageResource(mFlowerData[position].imagePath) } return convertView } private class ViewHolder { var nameTv: TextView? = null var imageView: ImageView? = null }}
class Flower { var flowerName: String? = null var imagePath = 0}
class FlowerActivity : AppCompatActivity() { var dataList = ArrayList() public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_flower) dataList = prepareDataList() val gridView = findViewById (R.id.gridView) as GridView val flowerAdapter = FlowerAdapter(this, dataList) gridView.adapter = flowerAdapter gridView.setOnItemClickListener { _, _, position, _ -> toast(dataList[position].flowerName!!) } } private fun toast(text: String) = Toast.makeText(this, text, Toast.LENGTH_SHORT).show() private fun prepareDataList(): ArrayList { val flowerData = ArrayList () //1st Item var flower = Flower() flower.flowerName = "Alyssum" flower.imagePath = R.drawable.image1 flowerData.add(flower) //2nd Item flower = Flower() flower.flowerName = "Daisy" flower.imagePath = R.drawable.image2 flowerData.add(flower) //3rd Item flower = Flower() flower.flowerName = "Jasmine" flower.imagePath = R.drawable.image3 flowerData.add(flower) //4th Item flower = Flower() flower.flowerName = "Lily" flower.imagePath = R.drawable.image1 flowerData.add(flower) //5th Item flower = Flower() flower.flowerName = "Poppy" flower.imagePath = R.drawable.image2 flowerData.add(flower) //6th Item flower = Flower() flower.flowerName = "Rose" flower.imagePath = R.drawable.image3 flowerData.add(flower) return flowerData }}
完整源代码
转载地址:https://cxyxy.blog.csdn.net/article/details/106374112 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月04日 08时44分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一站式开发工具:RT-Thread Studio 正式发布
2019-04-29
留言有礼|谢谢你悄悄点了小星星,让我们跃居GitHub RTOS Star榜第一
2019-04-29
功能更新!C 函数也能在 MicroPython 中被调用啦
2019-04-29
东软载波携ES32+RT-Thread走进海尔集团
2019-04-29
今晚8点直播预告:RT-Thread Studio等相关主题答疑
2019-04-29
物联网 20 年简史大揭秘!
2019-04-29
开源项目|RT-Thread 软件包应用作品:水墨屏桌面台历
2019-04-29
珠联璧合!基于i.MX RT和RT-Thread的物联网云接入方案
2019-04-29
基于RTT-MicroPython制作自带BGM的新型肺炎晴雨表
2019-04-29
开源项目|RT-Thread 软件包应用作品:小闹钟
2019-04-29
在 RT-Thread Studio 上使用 RT-Thread Nano
2019-04-29
开源项目|软件包应用作品:通用物联网系统平台
2019-04-29
单片机里面的CPU使用率是什么鬼?
2019-04-29
推荐一个优质Linux技术公众号-作者都是一线Linux代码贡献者们哦
2019-04-29
RT-Thread 编程风格指南
2019-04-29
95后高校电子教师,软硬兼修有趣有料!
2019-04-29
使用 STM32 通用 Bootloader ,让 OTA 更加 Easy
2019-04-29