zoukankan      html  css  js  c++  java
  • Android中如何使用GridView

    首先在主XML中放入Grid View控件 取好id

      private GridView gv1;
        private int[] icon = {R.drawable.cat, R.drawable.cow, R.drawable.dog, R.drawable.hamster};
        private String[] iconName = {"英雄介绍", "技能", "天赋推荐", "推荐出装"};
        private List<Map<String, Object>> data_list = new ArrayList<Map<String, Object>>();
    
        private SimpleAdapter simpleAdapter;
    

    在声明一个xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/image1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            />
        <TextView
            android:id="@+id/text1"
            android:layout_width="100dp"
            android:layout_height="30dp"
            />
    </LinearLayout>
    

    这个里面放置的就是你每一个网格的布局
    (自己根据需要设置)
    记得起好Id,下面用的时候会说自定义的xml

    在类里面声明的东西,Grid View控件
    icon数组里面放入的是图片
    iconName放入相对应的名字

    (都是根据自己的需要改名字和图片)
    建一个List数组泛型为Map<String,Object>
    声明一个Simple Adapter

      private List<Map<String, Object>> getDaste() {
            for (int i = 0; i < icon.length; i++) {
                Map<String, Object> map = new HashMap<>();
                map.put("image", icon[i]);
                map.put("text", iconName[i]);
                data_list.add(map);
            }
            return data_list;
        }
    

    建立一个getDaste方法
    给Map<String,Object>填充数据
    每建立一个Map,都填充两个数据一个是图片,一个是名字
    然后再往刚才声明的List里面添加,添加完在重新声明一个Map
    while(true)…

    gv1 = findViewById(R.id.gridview1);
            getDaste();
            String[] form = {"image", "text"};
            int[] to = {R.id.image1, R.id.text1};
            //创建适配器对象
            simpleAdapter = new SimpleAdapter(MainActivity.this, data_list, R.layout.item, form, to);
    //        simpleAdapter = new SimpleAdapter(MainActivity.this,data_list,R.layout.item,form,to);
            gv1.setAdapter(simpleAdapter);
    

    把声明的Grid View绑定上(通过Id)
    调用刚才创建的方法
    在建立俩个数组
    第一个数组放的是下标(取Map里面的数据所使用的)
    第二个数组放的是控件(自定义的xml里面的id
    使用Simple Adapter的构造方法(当前类,数据源(就是把Map存起来的List),自己声明的那个xml,Map需要的下标,赋值给哪个文件(这里是通过Id进行赋值的))
    最后一步,给Grid View进行填充数据

    运行结果:
    在这里插入图片描述

  • 相关阅读:
    面试题6:用两个栈实现队列
    cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: 解决办法
    支付系统的对账处理与设计--转
    centos 6.7下安装rabbitmq 3.6.6过程
    Can't access RabbitMQ web management interface after fresh install
    Spring Cloud Netflix Eureka client源码分析
    spring cloud config配置中心源码分析之注解@EnableConfigServer
    量化派基于Hadoop、Spark、Storm的大数据风控架构--转
    Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler
    spark groupByKey 也是可以filter的
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076480.html
Copyright © 2011-2022 走看看