二级列表ExpandableListView

<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放在一个类里面。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值