这是ExpandableList的使用效果:

Android之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这个方法所需要的变量所决定

更多相关文章

  1. Android之通过ContentProvider共享文件
  2. Android保存Log信息到本地文件
  3. java和Android文件下载断点续传和图片下载代码实现,可直接复制简
  4. 列出sdcard里所有.mp3文件,并且可以点击播放
  5. Android 文件瀏覽器
  6. Android手机开发——向SD卡上的文件追加内容
  7. Android调用系统相机onActivityResult返回参数data为null
  8. Unity android 读取文件,读取APK包文件

随机推荐

  1. Android使用Google Map API创建的一个根
  2. Android之TextView------文字底部或者中
  3. 使用意图在Activity之间传递数据小插曲__
  4. Android文件图片上传的详细讲解(四)---服务
  5. Android 6.0 动态权限申请实例
  6. Caused by: java.lang.NoSuchMethodExcep
  7. Android点击事件隐藏软键盘
  8. Android Studio:常见使用问题处理
  9. MediaScanner与音乐信息扫描==
  10. 打开app弹出欢迎界面,然后自动跳转到主界