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 命令——42 kill (转)
Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...
- linux 命令——35 ln(转)
ln 是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要 ...
- form.elements属性
form.elements属性与childNodes属性不同的是form.elements只返回的是表单元素组成的数组,包括input,textarea等
- NSAttributedString能否设置文字下划线?是否支持line break?
#import <CoreText/CoreText.h> #import "ViewController.h" @interface ViewController ( ...
- python_18_三元运算
# result=值1 if 条件 else 值2 如果条件为真:result=值1,否则result=值2. a,b,c=1,3,5 d=a if b>c else c print(d)
- 由一道CTF pwn题深入理解libc2.26中的tcache机制
本文首发安全客:https://www.anquanke.com/post/id/104760 在刚结束的HITB-XCTF有一道pwn题gundam使用了2.26版本的libc.因为2.26版本中加 ...
- oracle数据库删除表时遇见需要解锁问题
今天在进行数据清空时,不注意把表锁住了,记录一下解锁过程. 第一步执行 select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked ...
- ElasticSearch High Level REST API【5】使用模板搜索
ElasticSearch Rest高级API 提供了多种搜索方式,除了前面讲到的search查询,ElasticSearch 还提供了通过模板搜索查询.我个人比较喜欢这种方式. 我们可以通过脚本预选 ...
- 爬虫 xpath etree自动补全页面
aa = etree.HTML(response.content) bb = etree.tostring(aa) doc = etree.HTML(bb)
- python用requests请求,报SSL:CERTIFICATE_VERIFY_FAILED错误。
response = requests.request("GET", url, headers=headers, params=querystring, verify=False) ...