1.Activity

 package com.example.administrator.mystudent.ExpandableListView;

 import android.app.ExpandableListActivity;
import android.os.Bundle; public class ExpandableListViewActivity extends ExpandableListActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("二级列表的使用");
//设置适配器
setListAdapter(new MyExpandableListAdapter(this));
}
}

2.adapter适配器

 package com.example.administrator.mystudent.ExpandableListView;

 import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView; import java.util.ArrayList;
import java.util.List; /**
* Created by hyang on 2017/3/1
* email 390315032@qq.com.
* 可收缩列表适配器
*/ public class MyExpandableListAdapter extends BaseExpandableListAdapter { private Context context;
private String [] group={"衣服","食品","水果"};
private String [] cloths={"衬衫","西裤","内衣"};
private String [] food={"面包","蛋糕","可乐","橙汁"};
private String [] fruits={"苹果","香蕉","草莓"}; private List<String> groupList = null;
private List<List<String>> itemList = null; protected MyExpandableListAdapter(Context context){
this.context=context;
groupList=new ArrayList<String>();
itemList=new ArrayList<List<String>>(); setListData();
} /**
* 向list中添加数据
*/
private void setListData() {
for(String s:group){
groupList.add(s);
}
List clothsList=new ArrayList();
List foodList=new ArrayList();
List fruitsList=new ArrayList(); for(String s:cloths){
clothsList.add(s);
}
for(String s:food){
foodList.add(s);
}
for(String s:fruits){
fruitsList.add(s);
} itemList.add(clothsList);
itemList.add(foodList);
itemList.add(fruitsList);
} @Override
public int getGroupCount() {
//返回组数量
return itemList.size();
} @Override
public int getChildrenCount(int groupPosition) {
//返回当前组的节点数量
return itemList.get(groupPosition).size();
} @Override
public Object getGroup(int groupPosition) {
//返回分组对象,用于一些数据传递,在事件处理时可直接取得和分组相关的数据
return groupList.get(groupPosition);
} @Override
public Object getChild(int groupPosition, int childPosition) {
//设置子节点数据
return itemList.get(groupPosition).get(childPosition);
} @Override
public long getGroupId(int groupPosition) {
return groupPosition;
} @Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
} @Override
public boolean hasStableIds() {
return false;
} @Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
//设置组显示View,这里可是设置布局文件引用
TextView view=null;
if(convertView==null){
view=new TextView(context);
}else{
view= (TextView) convertView;
}
//设置textView的显示样式
view.setTextSize(30);
view.setPadding(50,5,0,5);
//向textView设置数据
String s=groupList.get(groupPosition);
view.setText(s);
return view;
} @Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
//设置节点显示View,这里可是设置布局文件引用
TextView view=null;
if(convertView==null){
view=new TextView(context);
}else{
view= (TextView) convertView;
}
view.setTextSize(20);
view.setPadding(30,5,0,5);
//向textView设置数据
String s=itemList.get(groupPosition).get(childPosition);
view.setText(s);
return view;
} @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}

Android简单的BaseExpandableList使用的更多相关文章

  1. Android简单逐帧动画Frame的实现(二)

    Android简单逐帧动画Frame的实现   Android简单逐帧动画Frame的实现 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: 1. 在工程里 ...

  2. Android简单文件浏览器源代码 (转)

    Android简单文件浏览器源代码 (转) activity_main .xml <LinearLayout xmlns:android="http://schemas.android ...

  3. Android简单介绍SharedPreference,内部文件,sdcard数据存储

    SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getShar ...

  4. android简单登陆和注册功能实现+SQLite数据库学习

    最近初学android,做了实验室老师给的基本任务,就是简单的登陆和注册,并能通过SQLite实现登陆,SQlLite是嵌入在安卓设备中的 好了下面是主要代码: 数据库的建立: 这里我只是建立了一个用 ...

  5. Android简单的ListViewDemo及每个控件的点击事件

    ListView是什么? ListView是一个 数据控件,可以展示从数据库中读取的数据.是.net3.5的新控件. 它比gridview更灵活,而且支持多种模板,支持分页. 文章地址 http:// ...

  6. Android简单加密保护自有图片资源

    现在大部分android应用的图片资源,被反编译后就可以直接拿来用,如果不想让自己的图片资源直接被反编译后使用,首先想到的应该是把图片加密.这里笔者抛砖引玉,草草写了一个对图片进行简单加密的方法,希望 ...

  7. Android 简单计算器源码....

    PS:今天算是闲着没事做了一个小型的计算器...顺便熟悉一下Android的布局,组件,以及时间监听的方法...就当是做了一个小小的练习吧...     顺便去对比了一下别人写的代码...有的使用到了 ...

  8. 也发一个自己实现的android简单文件选择器代码。支持多卡,排序

    一个很简单的文件选择器对话框,支持双sd卡,当然前提是要有sd卡..并且实现了排序效果. 只有100多行的代码,基本的思路就是用listview显示目录下的所有子文件,再判断是文件还是目录. 利用Co ...

  9. Android简单计算器

    这是很久之前做的,方法很简单,都是一些基础的,不足的是还有很多功能不够. activity_main.xml布局: <LinearLayout xmlns:android="http: ...

随机推荐

  1. SwiftHN阅读器应用IOS源码

    SwiftHN是用Swift语言编写的Hacker News阅读器,同时采用了iOS 8最新的API. <ignore_js_op> <ignore_js_op> 详细说明:h ...

  2. Android(java)学习笔记89:Bundle和Intent类使用和交互

    1. Bundle 和 Intent:    Bundle只是一个信息的载体 将内部的内容以键值对组织 ,Intent负责Activity之间的交互自己是带有一个Bundle的.Intent.putE ...

  3. 倍增LCA

    前言 在做树上问题时,我们经常会遇到 \(LCA\)(最近公共祖先)问题.曾经的我遇到这类问题只会\(O(n)\)暴力求解,学了倍增\(LCA\),就可以\(O(logn)\)解决了. 简介 倍增\( ...

  4. 【BZOJ3172】[TJOI2013] 单词(AC自动机的小应用)

    点此看题面 大致题意: 给你\(N\)个单词,请你求出每一个单词在这\(N\)个单词中出现的次数. 相关题目 这道题应该是洛谷上一道板子题的升级版. \(AC\)自动机 这是一道\(AC\)自动机的简 ...

  5. 父子组件通信(vuex的方式)

    转: https://blog.csdn.net/lzh5997/article/details/80407518 父子组件也可以通过vuex的进行来进行中转,其实vuex就类似与一个仓库,父组件把东 ...

  6. 深入理解Java GC

    一.概述 GC(Carbage Collection)垃圾收集器,由JVM自动回收已死亡的对象垃圾. 这也是Java与C++等语言的主要区别之一. 二.如何确认对象已死 1. 引用计数算法 引用计数法 ...

  7. UITableView 优化总结

    最近在微博上看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化UITableView的.加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优 ...

  8. Linux 命令大全提供 500 多个 Linux 命令搜索

    Linux Command 在这里维持一个持续更新的地方 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他 ...

  9. jpeg解码库使用实例

    jpeg库下载地址: http://www.ijg.org/ 交叉编译三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpe ...

  10. 十九、MySQL GROUP BY 语句

    MySQL GROUP BY 语句 GROUP BY 语句根据一个或多个列对结果集进行分组. 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. GROUP BY 语法 SELECT ...