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

相关文章
【每日教程】用中继器做一个三级菜单(含标签)
【每日教程】用中继器做一个三级菜单(含标签)
SwiftUI—点击列表不同的选项进入不同的详情页面
SwiftUI—点击列表不同的选项进入不同的详情页面
214 0
SwiftUI—点击列表不同的选项进入不同的详情页面
|
iOS开发
iOS 二级页面返回一级页面导航栏错位bug解决方法
iOS 二级页面返回一级页面导航栏错位bug解决方法
533 0
|
JavaScript
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
392 0
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
|
前端开发 JavaScript
制作四个选项卡页 Tab,用户可以通过切换不同的 Tab 页查看不同类别的新闻信息,每个 Tab 有对应的内容版块,点击某个选项卡时,显示对应的内容版块,隐藏其他内容版块,并且为了突出当前的选项卡,还
制作四个选项卡页 Tab,用户可以通过切换不同的 Tab 页查看不同类别的新闻信息,每个 Tab 有对应的内容版块,点击某个选项卡时,显示对应的内容版块,隐藏其他内容版块,并且为了突出当前的选项卡,还
234 0
制作四个选项卡页 Tab,用户可以通过切换不同的 Tab 页查看不同类别的新闻信息,每个 Tab 有对应的内容版块,点击某个选项卡时,显示对应的内容版块,隐藏其他内容版块,并且为了突出当前的选项卡,还
|
前端开发
HTMl+CSS制作二级菜单或二级导航栏
 二级菜单的实现思路为: 1.在默认状态下,使用display:none;将二级菜单隐藏。  2.当一级菜单中的列表标签li获取焦点(hover)后,使用display:blick;将二级菜单显示出来。  3.使用position: relative;和position: absolute;分别得一级菜单和二级菜单设置相对定位和绝对定位。
1068 0
HTMl+CSS制作二级菜单或二级导航栏
|
Web App开发 PHP
DEDE后台栏目管理处直接显示未审核文档数的修改方法
后台未审核的文档很多,每次审核内容的时候都是打开 等审核的档案 来查看未审核的内容的. 但是列表是根据发布时间进行排序的,如果想每个栏目审核几篇文档,就要去栏目管理处挨个打开栏目文档列表,看看是否有未审核的内容.
1226 0
|
Java
[Struts]学习日记3 - 在页面中显示条目列表
开发jsp/servlet最经常遇到的应用其中之一就是在页面上显示一个条目列表(例如用户列表、文章列表、商品列表等等),然后用户才好在浏览的基础上选择对某一个条目进行操作。现在就说一下怎样用struts实现这个功能。
1187 0
二级下拉菜单
看似简单的一个菜单,确需要不少的知识点。 1. getByClass  getElementsByClassName 已经有大部分现代浏览器支持了,只有ie6,ie7,ie8是不支持的。所以对ie6,7,8做特别的处理就行,而ie里边有个内置的属性一直被我们所忽略,document.all,这个比一般的document.getElementsByTagName('*')或许要快一点。
953 0

热门文章

最新文章