您的位置:首页 > 其它

ExpandableListView的用法,类似qq的联系人功能

2016-07-07 16:26 302 查看
private void initView() {

ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.expand_listview);

//设置 属性 GroupIndicator 去掉默认向下的箭头 expandListView.setGroupIndicator(null);

//也可以在布局文件中通过属性设置,android:groupIndicator=”@null”

MyGroupAdapter adapter = new MyGroupAdapter();

expandableListView.setAdapter(adapter);

expandableListView.setOnGroupClickListener(new OnGroupClickListener() {

@Override
public boolean onGroupClick(ExpandableListView arg0, View arg1, int groupPosition,
long arg3) {
Toast.makeText(MainActivity.this, "点击的组是"+groupPosition,0).show();
return false;
}
});
expandableListView.setOnChildClickListener(new OnChildClickListener() {

@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(MainActivity.this, "点击的是"+groupPosition+"的第"+childPosition+"个孩子",0).show();
return false;
}
});
}
private class MyGroupAdapter extends BaseExpandableListAdapter{

@Override
public Object getChild(int arg0, int arg1) {
return null;
}

@Override
public long getChildId(int arg0, int arg1) {
return 0;
}

@Override
public View getChildView(int arg0, int arg1, boolean arg2, View convertView,
ViewGroup arg4) {
if (convertView == null) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_child_item, null);
}
return convertView;
}

@Override
public int getChildrenCount(int arg0) {
return 3;
}

@Override
public Object getGroup(int arg0) {
return null;
}

@Override
public int getGroupCount() {
return 8;
}

@Override
public long getGroupId(int arg0) {
return arg0;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parentGroup) {
convertView = View.inflate(MainActivity.this, R.layout.listview_group_item, null);
ImageView iv = (ImageView) convertView.findViewById(R.id.iv);
if (isExpanded) {//自己设置箭头的位置,形状,isExpanded表示展开状态
iv.setBackgroundResource(R.drawable.arrows_1);
}else {
iv.setBackgroundResource(R.drawable.arrows_0);
}
return convertView;
}

@Override
public boolean hasStableIds() {
return false;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: