GridView:网格列表

重要属性:

numColumns="3"//列数
verticalSpacing="5dp"//item之间在垂直方向的间距
1.操作步骤:

a.创建一个GridView的Activity

b.创建一个Item的样式布局

c.创建一个MainAdapter类继承BaseAdapter,重点是重写getview()方法

d.MainActivity中定义视图包含数据

别忘了把需要的图片导入drawable目录下

2.核心代码

activity_main.xml

<GridView xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/gv_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:numColumns="3"android:verticalSpacing="5dp"android:layout_marginTop="10dp"></GridView>

item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="100dp"android:layout_height="100dp"android:orientation="vertical"android:gravity="center"><ImageViewandroid:id="@+id/iv_item_icon"android:layout_width="80dp"android:layout_height="80dp"android:src="@drawable/ic_food1"/><TextViewandroid:id="@+id/tv_item_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="牛排"android:textSize="20sp"android:textStyle="bold" />
</LinearLayout>

Adapter

private String[] names;private int[] icons;private Context context;public MainAdapter(Context context,String[] names, int[] icons) {super();this.context = context;this.names = names;this.icons = icons;}@Overridepublic int getCount() {return names.length;}@Overridepublic Object getItem(int i) {return names[i];}@Overridepublic long getItemId(int i) {return 0;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {if (view == null) {view = View.inflate(context,R.layout.item_app,null);}ImageView imageView = view.findViewById(R.id.iv_item_icon);TextView textView = view.findViewById(R.id.tv_item_name);imageView.setImageResource(icons[i]);textView.setText(names[i]);return view;}

MainActivity

private GridView gv_main;private MainAdapter adapter;String[] names = new String[]{"牛排","大鱼","鸡排饭","烤鸭","猪蹄","烤鸡","披萨","肉串","炸串","大虾"};int[] icons = new int[] {R.drawable.ic_food1,R.drawable.ic_food2,R.drawable.ic_food3, R.drawable.ic_food4,R.drawable.ic_food5,R.drawable.ic_food6,R.drawable.ic_food7, R.drawable.ic_food8,R.drawable.ic_food9,R.drawable.ic_food10};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gv_main = findViewById(R.id.gv_main);adapter = new MainAdapter(this,names,icons);gv_main.setAdapter(adapter);gv_main.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {//得到当前点击item的名称String name = names[i];//提示Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();}});}
3.效果图

Android之GridView+BaseAdapter相关推荐

  1. Android中GridView的实现实例

    实现效果: activity文件代码: package com.tmacsky; import android.app.Activity; import android.os.Bundle; impo ...

  2. Android中用GridView实现九宫格的两种方法

    1.传统办法:实现一个继承BaseAdapter的 ImageAdapter java代码如下: [java] view plaincopy package com.test; import andr ...

  3. Android中用GridView实现九宫格的两种方法(转)

    Android中用GridView实现九宫格的两种方法 http://blog.csdn.net/shakespeare001/article/details/7768455 1.传统办法:实现一个继 ...

  4. android gridview行分割线,Android使用GridView实现表格分割线效果

    使用gridview实现表格分割线效果,网格布局表格布局也是可以实现的. 效果如下: 1.主函数代码: package com.example.qd.douyinwu; import android. ...

  5. android gridview横向显示图片,Android使用Gridview单行横向滚动显示

    本文实例为大家分享了Android使用Gridview单行横向滚动显示的具体代码,供大家参考,具体内容如下 要想实现滚动显示,layout布局里必须要使用HorizontalScrollView,才能 ...

  6. android的listview+BaseAdapter的例子

    准备一个listview的xml,绑定到activity里面的listView的变量 准备一个继承自BaseAdapter的的MyAdapter,构造函数里面传入一个datasource的array, ...

  7. android 使用GridView实现Gallery的效果,并且从最左边开始

    1.首先设计man.xml这里使用HorizontalScrollView结合GridView实现Gallery的左右滚动效果,并且解决了Gallery从中间开始的问题,GridView可以从最左边开 ...

  8. Android 抽奖 GridView 只显示周围一圈的item 纯算法实现

    不多说直接贴代码!!!! package com.xuan.turntablelottery; import java.util.ArrayList; import java.util.List; i ...

  9. Android实现GridView的item长按拖动删除完美实现(带动画效果)

    领导这几天让做一个项目,就是可以实现像支付宝首页一样的可以长按拖动,删除的界面,以前没做过,领导让我做的时候觉得简直是老虎吃天,无从下手啊,可是领导的任务还是要实现的,没办法,就自己网上找咯,但是网上 ...

最新文章

  1. 人工智能训练云燧T10
  2. 不要用 SELECT *
  3. 数据库相关子查询实例
  4. 2_4 FacadeMode.cpp 外观模式
  5. /etc/fstab详解
  6. leetcode力扣49. 字母异位词分组
  7. 图像变形功能的应用: 在线修整发型
  8. SOA项目技术实施指南
  9. 云计算机房防雷规范,弱电机房设计内容规范大全
  10. 照明灯智能控制器c语言编程,基于51单片机的智能照明灯控制系统设计(含电路图,原理图,程序)...
  11. h5 api-获得地理经纬度和异常处理
  12. 电子技术基础——基本共射放大电路
  13. 世界上到处都是有才华的穷人
  14. mysql授权用户权限能用正则的形式_mysql创建用户及受权
  15. 深入理解IGP-ISIS——ISIS邻居建立过程,影响ISIS邻居建立因素,ISIS报文
  16. MySQL8.0超细致下载安装教程
  17. MaxScript入门指引系列(五)数组和Visual MaxScript editor
  18. 中国移动诺基亚联手推出智能机
  19. 蓝牙室内定位,SOC芯片NRF52832
  20. 树莓派2 是否值得购买、入手?

热门文章

  1. GStreamer插件:fakesink (黑洞插件)
  2. 永磁同步电机磁链、电压、力矩方程
  3. 3、UML统一建模语言是什么?
  4. 3P决定三流,三流归一是库存
  5. python round四舍六入五偶数问题
  6. 文本的换行与包裹 之 简介
  7. JavaScript离线手册 w3c(w3school) 百度网盘
  8. 规划坐标与二调坐标格式转换
  9. 【树莓派】使用VNC进行远程控制
  10. 有关createRange和window.selection.addRange的兼容测试