<RelativeLayout 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="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".MainActivity">
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="80dp"
android:stretchMode="spacingWidthUniform"
android:numColumns="3"
/>

主布局

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/img"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:src="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_gravity="center"
android:text="文字"
/> </LinearLayout>

项目布局gridview_item

public class MainActivity extends AppCompatActivity {
private GridView gridView;
private List<Map<String, Object>> dataList;
private SimpleAdapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridview);
//初始化数据
initData();
String[] from={"img","text"}; int[] to={R.id.img,R.id.text}; adapter=new SimpleAdapter(this, dataList, R.layout.gridview_item, from, to); gridView.setAdapter(adapter); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this);
builder.setTitle("提示").setMessage(dataList.get(arg2).get("text").toString()).create().show();
}
});
} void initData() {
//图标
int icno[] = { R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,R.drawable.ic5,
R.drawable.ic5,R.drawable.ic5,R.drawable.ic5};
//图标下的文字
String name[]={"时钟","信号","宝箱","秒钟","大象","FF","记事本","书签","印象","商店","主题","迅雷"};
dataList = new ArrayList<Map<String, Object>>();
for (int i = 0; i <icno.length; i++) {
Map<String, Object> map=new HashMap<String, Object>();
map.put("img", icno[i]);
map.put("text",name[i]);
dataList.add(map);
}
} }

主activity

GridView使用SimpleAdapter的更多相关文章

  1. GridView和SimpleAdapter实现网格布局

    android:horizontalSpacing 元素之间的水平间距 android:verticalSpacing     元素之间的垂直间距 android:numColumns         ...

  2. Android中GridView的使用——使用自带的SimpleAdapter(简单适配器)

    GridView一直是一个系统登录后以九宫格方式展现功能子模块的最佳选择,经过试验和网上资料的查阅,现把实现方式总结一下: 一直是通过自定义Adapter方式,在getView()方法中设置图片的显示 ...

  3. 安卓gridview 网格,多行多列实现

    主Activity() private int[] image = { R.drawable.camera, R.drawable.wifi, R.drawable.temperature, R.dr ...

  4. Android网格视图(GridView)

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

  5. Android GridView 二维布局界面

    GridView用于在界面上按行.列分布的方式来显示多个组件. <LinearLayout xmlns:android="http://schemas.android.com/apk/ ...

  6. android之使用GridView+仿微信图片上传功能

    由于工作要求最近在使用GridView完成图片的批量上传功能,我的例子当中包含仿微信图片上传.拍照.本地选择.相片裁剪等功能,如果有需要的朋友可以看一下,希望我的实际经验能对您有所帮助. 直接上图,下 ...

  7. GridView添加事件监听和常用属性解析

    1. 使用流程 graph LR 准备数据源-->新建适配器 新建适配器-->绑定数据源 绑定数据源-->加载适配器 2. 常用属性 android:columnWidth:每一列的 ...

  8. Android--UI之GridView

    前言 这篇博客介绍一下Android平台下,GridView控件的开发.针对GridView控件的一些常用属性.方法,以及注意事项进行讲解,最后将以一个Demo展示GridView控件的使用. Gri ...

  9. Android开发之使用GridView+仿微信图片上传功能(附源代码)

    前言:如果转载文章请声明转载自:https://i.cnblogs.com/EditPosts.aspx?postid=7419021  .另外针对有些网站转载本人的文章结果源码链接不对的问题,本人在 ...

随机推荐

  1. java 泛型学习随笔

    对于java 泛型 编译时处理,运行时擦除的特点理解 对于编译时处理 在使用泛型相关的类或方法时,如果声明时的类型和具体使用时的类型不一致则直接会编译不通过 对于运行时擦除 当在运行时对两个相同类型但 ...

  2. Class对象、反射、动态代理

    Class对象是所有类的根源,Object是所有对象的根源. 编译后的新类会产生一个Class对象,保存在同名的.class文件中.每个类都有一个Class对象,它包含了所有的与类有关的信息.所有的C ...

  3. JVM学习(九)volatile应用

    一.初认volatile 首先学习volatile关键字时,我们先简单的了解一下它能干啥: 工作内存与主内存同步延迟现象导致的可见性问题: 可通过synchronized或volatile关键字解决, ...

  4. PyCharm2018.3.5下载和安装及永久破解详解(成功案例)

    靓仔靓女,你是否在网上找了很多的方法都破解不了PyCharm,是有原因的!无论什么编程工具都不要下载近一到/两年内的版本,人家即把网上的一些破解方法修复了,而且还在测试阶段,不稳定就完事了我装的是20 ...

  5. node核心模块-vm

    vm vm是node的一个核心模块,核心功能官方文档介绍是: The vm module provides APIs for compiling and running code within V8 ...

  6. 走进shiro,构建安全的应用程序---shiro修仙序章

    0. 写在前面 在最近的一个项目当中,我们基于Shiro实现我们系统的认证和授权.借此机会,写几篇博客,总结一下在本次实践当中遇到的问题,和较全面地学习一下Shiro的知识点, 1. 权限管理 权限管 ...

  7. 【DFIR】数字取证与事件应急响应---初识

    应急响应 适用于负责现场应急,找出可疑的程序,恶意代码的安全工程师.这些可疑恶意程序或代码由另外的专家进行逆向分析. 前言 首先,什么是DRIF? DRIR:Digital Forensics and ...

  8. P4552 [Poetize6] IncDec Sequence

    Link 题目描述 给定一个长度为 \(n\) 的数列 \({a_1,a_2,\cdots,a_n}\),每次可以选择一个区间 \([l,r]\),使这个区间内的数都加 \(1\) 或者都减 \(1\ ...

  9. Java 生态碎片化 和 .NET生态的一致性

    .NET Core是以MIT协议开源, Java是GPL协议开源.Java 8 SDK升级Oracle要收费这件事对于很多小公司是有着重大的影响的,Java生态越发碎片化,有众多的OpenJDK发行版 ...

  10. 多测师讲解pthon_002字符,列表,元组,字段等

    # # # 索引:# # # 正向索引:  0  1  2  3  4  5  6# # #      l=   a  b  c  d  e  f  g# # # 反向索引: -7 -6 -5 -4 ...