gridview分组android,安卓使用GridView实现网格视图
效果图
主要代码
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实现网格视图相关推荐
- java使用gridview,网格控件GridView在Android中的使用
我们在上面之前发表过一篇"使用Gallery实现缩略图浏览器",今天介绍另一种类似的控件,但是该控件是以网格的方式显示的,也就是说,当我们使用它来显示一组图片,结果图片将会以类似九 ...
- Android网格视图(GridView)
GridView的一些属性: 1.android:numColumns="auto_fit" //GridView的列数设置为自动,也可以设置成2.3.4-- 2.androi ...
- Android 网格视图GridView
GridView的视图排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用GirdView.既然有多个元素要显示,就需要使用BaseAdapter来存储这些元素.用户可能 ...
- android gridview 加载图片大小,Gridview有两列和自动调整大小的图像
这是一个相对简单的方法.将GridView放入布局,设置拉伸模式以拉伸列宽,将间距设置为0(或任何您想要的),并将列数设置为2: RES /布局/ main.xml中<?xml version ...
- Android开发之GridView的使用(解读谷歌官方API)
GridView将图片显示在二维可移动的网格里,使用ListAdapter可以将Grid项目自动填充满整个布局.下面我们根据官方文档的例子来实现一下使用GridView,点击视图里的图片弹出图片的po ...
- UI组件之AdapterView及其子类(二)GridView网格视图的使用
GridView网格视图属性: android:numColumns="auto_fit" --------列数设置为自动,可以为确定的数值 android:columnWidth ...
- 高级控件——列表类视图——网格视图GridView
======================================================================================= 布局: <Line ...
- android+tv+自动切换,Android TV 重写GridView,实现焦点放大效果
关于缩放,使用了view.setScaleX/Y 方法,api11以上即可. 重写dispatchDraw(),绘制选中项的焦点效果.(注意带阴影的焦点图需要微调偏移量) 要将选中项绘制显示在顶层,所 ...
- android listView嵌套gridview的使用心得
在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中, 不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动 ...
- ASP.NET中 DropDownList+GridView(网格视图)的使用前台绑定[高]
ylbtech-ASP.NET-Control-Bind:DropDownList+GridView(网格视图)的使用前台绑定[高] ASP.NET中 DropDownList+GridView(网格 ...
最新文章
- js中的arguments 参数
- Python自制微信机器人:群发消息、自动接收好友
- 百度平台K12人群洞察报告
- 2019专业赛事活动承办平台有哪些?—创成汇
- vscode beautify sass 格式化_最强编辑器 VSCode 系列之插件推荐【不定期更新】
- 牛客练习赛39 B 选点(dfs序+LIS)
- 机试:Python的代码模板、OJ技巧
- matlab图像处理中的错误--调用imhist报错
- 学习笔记——直流电机调速器
- PPT怎么母版怎么修改及应用
- 一个多重阴影的DIV框框
- python 输出 百分比
- 微信平台开发获取微信用户的OPENID
- html语言无序下拉菜单,(4条消息)HTML语言标记详解
- 九型性格心理测试 (From Ulla Zang荣格的个人性格测验题目)
- github大文件上传:使用LFS (以及如何将lfs从仓库中移除!)
- uni-app开发小程序app页面中获取globalData
- 第十六周上机实践—项目2—大数据集上排序算法性能的体验
- 2019高考江苏卷语文作文
- 芯片制造之掩模领域中的术语