Android简单的BaseExpandableList使用
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使用的更多相关文章
- Android简单逐帧动画Frame的实现(二)
Android简单逐帧动画Frame的实现 Android简单逐帧动画Frame的实现 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: 1. 在工程里 ...
- Android简单文件浏览器源代码 (转)
Android简单文件浏览器源代码 (转) activity_main .xml <LinearLayout xmlns:android="http://schemas.android ...
- Android简单介绍SharedPreference,内部文件,sdcard数据存储
SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getShar ...
- android简单登陆和注册功能实现+SQLite数据库学习
最近初学android,做了实验室老师给的基本任务,就是简单的登陆和注册,并能通过SQLite实现登陆,SQlLite是嵌入在安卓设备中的 好了下面是主要代码: 数据库的建立: 这里我只是建立了一个用 ...
- Android简单的ListViewDemo及每个控件的点击事件
ListView是什么? ListView是一个 数据控件,可以展示从数据库中读取的数据.是.net3.5的新控件. 它比gridview更灵活,而且支持多种模板,支持分页. 文章地址 http:// ...
- Android简单加密保护自有图片资源
现在大部分android应用的图片资源,被反编译后就可以直接拿来用,如果不想让自己的图片资源直接被反编译后使用,首先想到的应该是把图片加密.这里笔者抛砖引玉,草草写了一个对图片进行简单加密的方法,希望 ...
- Android 简单计算器源码....
PS:今天算是闲着没事做了一个小型的计算器...顺便熟悉一下Android的布局,组件,以及时间监听的方法...就当是做了一个小小的练习吧... 顺便去对比了一下别人写的代码...有的使用到了 ...
- 也发一个自己实现的android简单文件选择器代码。支持多卡,排序
一个很简单的文件选择器对话框,支持双sd卡,当然前提是要有sd卡..并且实现了排序效果. 只有100多行的代码,基本的思路就是用listview显示目录下的所有子文件,再判断是文件还是目录. 利用Co ...
- Android简单计算器
这是很久之前做的,方法很简单,都是一些基础的,不足的是还有很多功能不够. activity_main.xml布局: <LinearLayout xmlns:android="http: ...
随机推荐
- linux 命令——41 ps(转)
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- 知乎日报客户端应用ios源码
swift开发的知乎日报客户端详细源码,里面分UI和网络两个模块. 1.涉及到了大部分的UI控件的使用(甚至包括UIRefreshView,UITableConrol等等)2.Connection完成 ...
- 《剑指offer》【调整数组顺序使奇数位于偶数前面】(python版)
题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分 思路: 我认真看了一下,题目应该是要求在原地调整,所以这里不能再 ...
- 交叉验证(Cross Validation)方法思想简介
以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train ...
- AOSP常见漏洞类型简介
Heap/Stack Overflow(CVE-2017-0541) 漏洞出现在PushcdlStack函数中,如下所示 # /external/sonivox/arm-wt-22k/lib_sr ...
- Java基础——动态代理
1.什么是动态代理? 简单的来说,就是本来让我自己做的事,请给别人来做,这个请的人就是代理对象 那么动态代理就是在程序运行过程中产生这个代理对象,而程序运行中产生的对象就是用反射的来生成一个代理. 举 ...
- 搜狗浏览器特性页面JS
http://ie.sogou.com/features4.2.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN ...
- 如何从SqlDataReader中获取DataRow
1.前言使用SqlDataReader较之SqlDataAdapter速度上快,因为读取记录是一行一行的来,但是往往也感觉那么蹩脚.例如经常用到的如何从SqlDataReader中获取DataRow呢 ...
- Linux命令安装vnc服务端与vnc的客户端
第一歩:运行命令 yum install tigervnc-server -y 第二歩:安装telnet 第三歩:运行vncserver,创建桌面 vncserver -kill :1 删除桌面1的 ...
- 操作系统(6)_虚拟存储管理_李善平ppt
image含各种段. 有些不需要的页可能永远不需要装入内存,可能只有百分之70-80是异常情况采用的,这种代码就可以放入硬盘. 抖动实际就是进程数太多导致内存不够用造成的. 页面换入换出在内存和磁盘之 ...