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. jquery实现简单的验证码倒计时的效果

    HTML: <div class="container"> <form> <div class="form-group"> ...

  2. 微信小程序(底部导航的实现)

    详情请看官方文档介绍: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html 在根目录配置文件app.json中配置底部导航: ...

  3. docker 快速搭建 mysql

    准备工作 系统 centos7 切换阿里源 #备份资源文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo ...

  4. Feign + Hystrix 服务熔断和服务降级

    本机IP为  192.168.1.102 1.    新建 Maven 项目   feign 2.   pom.xml <project xmlns="http://maven.apa ...

  5. java Socket 客户端服务端对接正确写法(BIO)

    之前在工作中写过一些Socket客户端与服务端的代码,但是当时没有时间仔细研究,只能不报错先过的态度,对其细节了解不深,写的代码有各种问题也浑然不知,只是业务量级以及对接方对接代码没有出现出格的情况所 ...

  6. java对集合的操作,jxl操作excel

    http://www.cnblogs.com/epeter/p/5648026.html http://blog.sina.com.cn/s/blog_6145ed810100vbsj.html

  7. d3.js--01

    D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档.听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可 ...

  8. linux下避免僵尸进程的几种方法

    linux下我们可以调用fork函数创建子进程,创建的子进程将会得到父进程的数据空间.堆.栈......副本(采用写时复制机制),子进程将会继承父进程的信号掩码.信号处理方式.当前工作目录.会话id. ...

  9. shell脚本中case的用法

    shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char ...

  10. 【JAVA】JVM常用工具

    JDK内置工具使用 jps(Java Virtual Machine Process Status Tool)    查看所有的jvm进程,包括进程ID,进程启动的路径等等. jstack(Java ...