效果图:
xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ExpandableListView
android:id="@+id/expd_lv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></ExpandableListView>
</LinearLayout>
Java代码:MainActivity
- 加载数据
private void LoadListData() {
// TODO Auto-generated method stub
GroupData = new ArrayList<String>();
GroupData.add("绿色植物1");
GroupData.add("绿色植物2");
GroupData.add("绿色植物3");
ChildrenData = new ArrayList<List<String>>();
List<String> child1 = new ArrayList<String>();
child1.add("1白杨");
child1.add("1梧桐");
child1.add("1合欢");
ChildrenData.add(child1);
List<String> child2 = new ArrayList<String>();
child2.add("2白杨");
child2.add("2梧桐");
child2.add("2合欢");
ChildrenData.add(child2);
List<String> child3 = new ArrayList<String>();
child3.add("3白杨");
child3.add("3梧桐");
child3.add("3合欢");
ChildrenData.add(child3);
}
- 适配器Adapter:
private class ExpandableAdapter extends BaseExpandableListAdapter{
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return ChildrenData.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
TextView myText = null;
if(convertView != null){
myText = (TextView) convertView;
myText.setText(ChildrenData.get(groupPosition).get(childPosition));
}else{
myText = createView(ChildrenData.get(groupPosition).get(childPosition));
}
return myText;
}
private TextView createView(String content) {
// TODO Auto-generated method stub
AbsListView.LayoutParams params = new AbsListView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 80);
TextView myText = new TextView(MainActivity.this);
myText.setLayoutParams(params);
myText.setGravity(Gravity.CENTER_VERTICAL| Gravity.LEFT );
myText.setPadding(80, 0, 0, 0);
myText.setText(content);
return myText;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return ChildrenData.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return GroupData.get(groupPosition);
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return GroupData.size();
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
TextView myText = new TextView(MainActivity.this);
if(convertView != null){
myText = (TextView) convertView;
myText.setText(GroupData.get(groupPosition));
}else{
myText = createView(GroupData.get(groupPosition));
}
return myText;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
}
- 添加适配器
adapter = new ExpandableAdapter();
expd_lv.setAdapter(adapter);
下载地址:http://download.csdn.net/detail/spring_0819/5792347
本文原创 ,转载必须注明出处:http://blog.csdn.net/spring_0819/article/details/9396219