ExpandableListView以及BaseExpandableListAdapter的基本使用

ExpandableListView是listView的扩展类.之前做过测试,使用ExpandableListView结合baseAdapter的getView  实现扩展组项跟子项,但是会报错.不多说,上代码

layout布局: <ExpandableListView
            android:id="@+id/store_listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:divider="@color/touming" />

 

Activity代码:

/*去掉自带的箭头图标*/
listView.setGroupIndicator(null);
/*屏蔽收缩功能*/
listView.setOnGroupClickListener(new OnGroupClickListenerImpl());

其中 OnGroupClickListenerImpl直接重写return true  

/*只展开一个item*/
listView.setOnGroupExpandListener(new OnGroupExpandListener() {
int lastItem = -1;
@Override
public void onGroupExpand(int groupPosition) {
if( lastItem >= 0){
listView.collapseGroup(lastItem);
}
lastItem = groupPosition;
}
});

 

/*子项点击事件*/
listView.setOnChildClickListener(new OnChildClickListenerImpl());

/**子项点击事件监听*/

private class OnChildClickListenerImpl implements OnChildClickListener {// 监听子项点击事件

@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
int gourpsSum = adapter.getGroupCount();// 组量


for (int i = 0; i < gourpsSum; i++) {
int groupcount = adapter.getChildrenCount(i);// 组中子项数量
for (int k = 0; k < groupcount; k++) {
boolean isLast = false;
if (k == (groupcount - 1)) {
isLast = true;
}

/*被选中的子项*/
if (i == groupPosition && k == childPosition) {

adapter.getChildView(i, k, isLast, null, null);//获取子项view

adapter.getChildView(i, k, isLast, null, null).findViewById(R.id.xxxxxx);//获取子项view中的某个组件

}

}

}

}

 

BaseExpandableListAdapter 就不详细的多说了  网上到处都是

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值