效果图

主要代码

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

}

}

完整源代码

gridview分组android,安卓使用GridView实现网格视图相关推荐

  1. java使用gridview,网格控件GridView在Android中的使用

    我们在上面之前发表过一篇"使用Gallery实现缩略图浏览器",今天介绍另一种类似的控件,但是该控件是以网格的方式显示的,也就是说,当我们使用它来显示一组图片,结果图片将会以类似九 ...

  2. Android网格视图(GridView)

    GridView的一些属性: 1.android:numColumns="auto_fit"   //GridView的列数设置为自动,也可以设置成2.3.4-- 2.androi ...

  3. Android 网格视图GridView

    GridView的视图排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用GirdView.既然有多个元素要显示,就需要使用BaseAdapter来存储这些元素.用户可能 ...

  4. android gridview 加载图片大小,Gridview有两列和自动调整大小的图像

    这是一个相对简单的方法.将GridView放入布局,设置拉伸模式以拉伸列宽,将间距设置为0(或任何您想要的),并将列数设置为2: RES /布局/ main.xml中<?xml  version ...

  5. Android开发之GridView的使用(解读谷歌官方API)

    GridView将图片显示在二维可移动的网格里,使用ListAdapter可以将Grid项目自动填充满整个布局.下面我们根据官方文档的例子来实现一下使用GridView,点击视图里的图片弹出图片的po ...

  6. UI组件之AdapterView及其子类(二)GridView网格视图的使用

    GridView网格视图属性: android:numColumns="auto_fit" --------列数设置为自动,可以为确定的数值 android:columnWidth ...

  7. 高级控件——列表类视图——网格视图GridView

    ======================================================================================= 布局: <Line ...

  8. android+tv+自动切换,Android TV 重写GridView,实现焦点放大效果

    关于缩放,使用了view.setScaleX/Y 方法,api11以上即可. 重写dispatchDraw(),绘制选中项的焦点效果.(注意带阴影的焦点图需要微调偏移量) 要将选中项绘制显示在顶层,所 ...

  9. android listView嵌套gridview的使用心得

    在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中, 不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动 ...

  10. ASP.NET中 DropDownList+GridView(网格视图)的使用前台绑定[高]

    ylbtech-ASP.NET-Control-Bind:DropDownList+GridView(网格视图)的使用前台绑定[高] ASP.NET中 DropDownList+GridView(网格 ...

最新文章

  1. js中的arguments 参数
  2. Python自制微信机器人:群发消息、自动接收好友
  3. 百度平台K12人群洞察报告
  4. 2019专业赛事活动承办平台有哪些?—创成汇
  5. vscode beautify sass 格式化_最强编辑器 VSCode 系列之插件推荐【不定期更新】
  6. 牛客练习赛39 B 选点(dfs序+LIS)
  7. 机试:Python的代码模板、OJ技巧
  8. matlab图像处理中的错误--调用imhist报错
  9. 学习笔记——直流电机调速器
  10. PPT怎么母版怎么修改及应用
  11. 一个多重阴影的DIV框框
  12. python 输出 百分比
  13. 微信平台开发获取微信用户的OPENID
  14. html语言无序下拉菜单,(4条消息)HTML语言标记详解
  15. 九型性格心理测试 (From Ulla Zang荣格的个人性格测验题目)
  16. github大文件上传:使用LFS (以及如何将lfs从仓库中移除!)
  17. uni-app开发小程序app页面中获取globalData
  18. 第十六周上机实践—项目2—大数据集上排序算法性能的体验
  19. 2019高考江苏卷语文作文
  20. 芯片制造之掩模领域中的术语

热门文章

  1. Microsoft Excel常用操作
  2. Linux操作系统中readelf命令常见用法
  3. 手动写一个上传图片的组件,不适用插件,包括限制图片大小,格式
  4. Unity Shader 噪声消融特效 - 剑灵死亡特效
  5. [luoguP2285] [HNOI2004]打鼹鼠(DP)
  6. 等额本金-c语言俩个整数除法
  7. ActionScript3文本框字体调整一法
  8. 端午节那晚,见了个小学时的同学!
  9. Windows和Linux 服务器的访问方式
  10. theano 后端爆内存