您的位置:首页 > 其它

二级列表ExpandableListView

2015-02-12 17:44 405 查看
<ExpandableListView
android:id="@+id/expandableListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:divider="@null"
>
</ExpandableListView>

代码:

初始化:

listView = (ExpandableListView) getActivity().findViewById(
R.id.expandableListView);
private class MyAdapter extends BaseExpandableListAdapter {

@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return expandChildData.length;
}

@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return 1;
}

@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}

@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return groupPosition * 9 + childPosition;
}

@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return groupPosition * 9 + childPosition;
}

@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final GroupViewHolder holder = new GroupViewHolder();
View view = LayoutInflater.from(getActivity()).inflate(
R.layout.expanded_listview_adapter_group_item, null);
holder.groupCB = (CheckBox) view
.findViewById(R.id.expand_listview_group_cb);
//如果不能展开和收缩,要自己调用
//..listView.expandGroup(groupPosition);
// 关闭本组列表
//listView.collapseGroup(groupPosition);
...
});
return view;
}
@Override
public View getChildView(final int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
...
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
final class GroupViewHolder {
LinearLayout layout;
CheckBox groupCB;
}
final class ChildViewHolder {}

首先:如果是自己的listVie点击没有反映,没有扩展或者是收缩,只能用代码来控制:

// 显示本组列表 listView.expandGroup(groupPosition);

// 关闭本组列表 listView.collapseGroup(groupPosition);

去除一级列表前面的那个箭头:

listView.setGroupIndicator(null);


其次对于重用的convertView来说,经常会出现空指针,是因为我这里用的是两个的类来放不同的布局,如果只用一个类的话,就不会出现这个空指针的问题了,因此,如果要重用的话,最好是把两个的view放在一个类里面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: