我先自来熟的唠嗑几句,终于大学毕业了,博客开通不久,遇到一些好的东西想分享出来,以后在项目中使用或者遇到的问题,我也会分享在博客里,既是对自己技术的一个记录总结,也希望有更多的IT大牛指点指点,或者爱技术的朋友一起讨论讨论。闲话不多说,切入正题。
1.认识expandablelistview和它的adapter
先看图,我想很多刚接触安卓这个行业的,有时候会遇到图上的这种需求,拿到这种图,很多时候我们都是考虑用listview去写,用type标签的去判断哪一块显示什么,这里给大家介绍下expandablelistview实现这样一个界面的方便之处。
首先我们来认识一下,expandablelistview又名扩展列表,顾名思义就是拥有可扩展的子级列表,允许有父级标签,外加自己子级的内容。其实它就相当于两个listview的嵌套,说白了就是listview扩展来的。
认识了expandablelistview后,我们就知道它是有父级和子级列表,所以很自然的想到,添加内容进去肯定需要一个父级的集合,和子级集合。所以就可以先定义两个list集合:
private List<String> groupArray;//定义父级列表
private List<List<String>> itemArray;//定义子列表
接下来我们去认识expandablelistview的adapter
要将数据展示出来,或者进行个性化的定制是离不开BaseExpandableListAdapter这个adapter的,那么我们先了解一下这个adapter到底有哪些属性。
@Override
public int getGroupCount() {
return groupArray.size();
}
@Override
public int getChildrenCount(int i) {
return itemArray.get(i).size();
}
@Override
public Object getGroup(int i) {
return getGroup(i);
}
@Override
public Object getChild(int i, int i1) {
return itemArray.get(i).get(i1);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
view = View.inflate(context, R.layout.item_lte_relate_group,null);
GroupHolder holder = new GroupHolder(view);
holder.tvGroup.setText(groupArray.get(i));
return view;
}
@Override
public View getChildView(i