ExpandInfoAdapter实现二级列表显示转

简介: ExpandInfoAdapter实现二级列表显示转

android列表,有时需要显示两级列表,使用Listview不能达到很好的效果,可以使用ExpandInfoAdapter很好的实现二级列表,并且能够自定义相应的列表。下面是我定义二级列表的实例:

其中的列表布局和相应的图片都是自定义的,实现代码如下:

public final static String NAME = "Name:";
public final static String PHONE = "Phone:";
public final static String SEX = "Sex:";
public List<String> group;
public List<List<String>> child;
ExpandInfoAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ExpandableListView expandableListView=(ExpandableListView)findViewById(R.id.list);
initialOther();
addItemByValue("WWWW","051782214","man");
addItemByValue("ZZZZ","110","mal");
addItemByValue("DDDD","132","femal");
addItemByValue("FFFFF","11111","femal");
adapter = new ExpandInfoAdapter(this);
expandableListView.setAdapter(adapter);
}
public void initialOther(){
group = new ArrayList<String>();
child = new ArrayList<List<String>>();
}
public void addItemByValue(String n,String c1,String c2){
group.add(n);
List<String> item = new ArrayList<String>();
item.add(NAME+n);
item.add(PHONE+c1);
item.add(SEX+c2);
child.add(item);
}
public class ExpandInfoAdapter extends BaseExpandableListAdapter {
Activity activity;
public ExpandInfoAdapter(Activity a){
activity = a;
}
@Override
public Object getChild(int arg0, int arg1) {
return child.get(arg0).get(arg1);
}
        @Override
public long getChildId(int arg0, int arg1) {
return arg1;
}
@Override
public int getChildrenCount(int arg0) {
return child.get(arg0).size();
}
        @Override
public View getChildView(int arg0, int arg1, boolean arg2, View arg3,
ViewGroup arg4) {
View view = arg3;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.listview, null);
LinearLayout layout = (LinearLayout) view
.findViewById(R.id.layout_013);
}
TextView title = (TextView) view.findViewById(R.id.content_001);
title.setText(child.get(arg0).get(arg1));
return view;
}
@Override
public Object getGroup(int arg0) {
return group.get(arg0);
}
        @Override
public int getGroupCount() {
return group.size();
}
        @Override
public long getGroupId(int arg0) {
return arg0;
}
        @Override
public View getGroupView(int arg0, boolean arg1, View arg2,
ViewGroup arg3) {
View view = arg2;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.listview, null);
LinearLayout layout = (LinearLayout) view
.findViewById(R.id.layout_013);
}
ImageView imageView=(ImageView)view.findViewById(R.id.tubiao); if(arg1)
{
imageView.setBackgroundResource(R.drawable.tubiao_button1);
}else{
imageView.setBackgroundResource(R.drawable.tubiao_button);
}                 TextView title = (TextView) view.findViewById(R.id.content_001);
title.setText(getGroup(arg0).toString());
return view;
}
              public void onGroupExpanded(int groupPosition){
}
public void onGroupCollapsed(int groupPosition){
}
@Override
public boolean isChildSelectable(int arg0, int arg1) {
return true;
}
@Override
public boolean hasStableIds() {
return false;
}
}

源代码:https://easymorse-android.googlecode.com/svn/trunk/ExpandableListDemoActivity

相关文章
【每日教程】用中继器做一个三级菜单(含标签)
【每日教程】用中继器做一个三级菜单(含标签)
|
4月前
|
监控
若依如何添加目录菜单,左边的内容,找到左侧目录系统管理下的菜单管理,上级菜单什么意思,创建好放哪里,这里的首页,系统管理,系统监控是主类目是并集 ,显示排序,值越小排名越靠前
若依如何添加目录菜单,左边的内容,找到左侧目录系统管理下的菜单管理,上级菜单什么意思,创建好放哪里,这里的首页,系统管理,系统监控是主类目是并集 ,显示排序,值越小排名越靠前
若依如何创建二级页面菜单,点击目录后,右侧空白的悬浮空白的内容,点击系统管理的菜单管理,上级菜单点击主类木有个小三角,选择我们之前创建的主类目
若依如何创建二级页面菜单,点击目录后,右侧空白的悬浮空白的内容,点击系统管理的菜单管理,上级菜单点击主类木有个小三角,选择我们之前创建的主类目
|
小程序 JavaScript 数据库
小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表
小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表
207 0
|
JavaScript
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
429 0
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
|
前端开发
HTMl+CSS制作二级菜单或二级导航栏
 二级菜单的实现思路为: 1.在默认状态下,使用display:none;将二级菜单隐藏。  2.当一级菜单中的列表标签li获取焦点(hover)后,使用display:blick;将二级菜单显示出来。  3.使用position: relative;和position: absolute;分别得一级菜单和二级菜单设置相对定位和绝对定位。
1235 0
HTMl+CSS制作二级菜单或二级导航栏
|
iOS开发
iOS 二级页面返回一级页面导航栏错位bug解决方法
iOS 二级页面返回一级页面导航栏错位bug解决方法
796 0
|
网络协议 SEO
|
JavaScript
22、商品列表页
前言:本章主要是商品列表页的一个基本布局讲解。(具体效果请下滑到底部) Github:https://github.com/Ewall1106/mall(请选择分支chapter22) 1、新建goodList.
1408 0