• Android之ExpandableList使用


    这是ExpandableList的使用效果:




    1.  /**对SimpleExpandableListAdapter参数的解释
    2.           * 使用SimpleExpandableListAdapter显示ExpandableListView
    3.           * 参数1.上下文对象Context
    4.           * 参数2.一级条目目录集合
    5.           * 参数3.一级条目对应的布局文件
    6.           * 参数4.fromto,就是map中的key,指定要显示的对象
    7.           * 参数5.与参数4对应,指定要显示在groups中的id
    8.           * 参数6.二级条目目录集合
    9.           * 参数7.二级条目对应的布局文件
    10.           * 参数8.fromto,就是map中的key,指定要显示的对象
    11.           * 参数9.与参数8对应,指定要显示在childs中的id
    12.           */

      1.首先需要创建3个layout文件,以下是第一个layout的参考,这是显示在界面上的界面布局文件
       <?xml version="1.0" encoding="UTF-8"?>
       
      <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
               
      android:orientation="vertical"
               
      android:layout_width="match_parent"
               
      android:layout_height="match_parent"
               
      android:paddingLeft="8dp"
               
      android:paddingRight="8dp">
       
           
      <ExpandableListViewandroid:id="@id/android:list"
                     
      android:layout_width="match_parent"
                     
      android:layout_height="match_parent"
                     
      android:background="#00FF00"
                     
      android:layout_weight="1"
                     
      android:drawSelectorOnTop="false"/>
       
           
      <TextViewandroid:id="@id/android:empty"
                     
      android:layout_width="match_parent"
                     
      android:layout_height="match_parent"
                     
      android:background="#FF0000"
                     
      android:text="No data"/>
       
      </LinearLayout>


      2.第二个布局文件是Group的layout文件,第三个是Child的layout文件
      3.这是ExpandableListActivity的代码

      //组
      List<Map<String,String>> listGroup = new ArrayList<Map<String,String>>();
      Map<String,String> listGroupMap = new HashMap<String,String>();
      listGroupMap.put("国家", "英超联赛");
      Map<String,String> listGroupMap1 = new HashMap<String,String>();
      listGroupMap1.put("国家", "西班牙联赛");
      Map<String,String> listGroupMap2 = new HashMap<String,String>();
      listGroupMap2.put("国家", "意大利联赛");
      listGroup.add(listGroupMap);
      listGroup.add(listGroupMap1);
      listGroup.add(listGroupMap2);

      //子 List<? extends List<? extends Map<String, ?>>>
      List<List<Map<String,String>>> listChild = new ArrayList<List<Map<String,String>>>();
      List<Map<String,String>> list1 = new ArrayList<Map<String,String>>();
      Map<String,String> map1 = new HashMap<String,String>();
      Map<String,String> map2 = new HashMap<String,String>();
      Map<String,String> map3 = new HashMap<String,String>();
      map1.put("球队", "曼联");
      map2.put("球队", "利物浦");
      map3.put("球队", "阿森纳");
      list1.add(map1);
      list1.add(map2);
      list1.add(map3);

      List<Map<String,String>> list2 = new ArrayList<Map<String,String>>();
      Map<String,String> map4 = new HashMap<String,String>();
      Map<String,String> map5 = new HashMap<String,String>();
      map4.put("球队", "皇马");
      map5.put("球队", "巴塞罗那");
      list2.add(map4);
      list2.add(map5);

      List<Map<String,String>> list3 = new ArrayList<Map<String,String>>();
      Map<String,String> map6 = new HashMap<String,String>();
      Map<String,String> map7 = new HashMap<String,String>();
      map6.put("球队", "罗马");
      map7.put("球队", "AC米兰");
      list3.add(map6);
      list3.add(map7);

      listChild.add(list1);
      listChild.add(list2);
      listChild.add(list3);

      ExpandableListTest.this.setListAdapter(new SimpleExpandableListAdapter(this, listGroup, R.layout.group_layout,
      new String[]{"国家"}, new int[]{R.id.text1}, listChild, R.layout.child_layout, new String[]{"球队"},
      new int[]{R.id.text2}));

       
      ***至于为什么需要如此创建各种泛型,是由于 SimpleExpandableListAdapter这个方法所需要的变量所决定
  • 相关阅读:
    python读取数据写入excel
    English Study!
    ODOO里视图开发案例---定义一个像tree、form一样的视图
    更改gradle中央仓库,加快访问速度
    hadoop解决集群启动时某个slave的datanode挂掉问题
    ssh免密登录
    大数据集群脚本xcall和xsync
    虚拟机启动后黑屏并无法关闭
    快照与克隆的区别(来自转载)
    VMware12 打不开Centos6.8系统
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2417537.html
Copyright © 2020-2023  润新知