package com.lovo.activity;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import com.lovo.lesson15.R;
/**
* 测试可扩展的ListView
* @author Administrator
*
*/
public class TestExpanListActivity extends Activity{
private ExpandableListView elv;
/**
* 种族集合
*/
private ArrayList<String> typeList = new ArrayList();
/**
* 兵种集合
*/
private ArrayList<ArrayList<String>> itemList = new ArrayList();
/**
* 初始化集合
*/
public void initData(){
typeList.add("人族");
typeList.add("神族");
typeList.add("虫族");
//人族兵种的集合
ArrayList renzu = new ArrayList();
renzu.add("机枪兵");
renzu.add("火焰兵");
renzu.add("医生MM");
itemList.add(renzu);
//神族兵种的集合
ArrayList shenzu = new ArrayList();
shenzu.add("狂战士");
shenzu.add("龙骑士");
itemList.add(shenzu);
//虫族兵种的集合
ArrayList chongzu = new ArrayList();
chongzu.add("小狗");
chongzu.add("地刺");
chongzu.add("口水");
itemList.add(chongzu);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test_expanlistview_main);
initData();
elv = (ExpandableListView) findViewById(R.id.test_expanlistview_main_elv);
BaseExpandableListAdapter adapter = new BaseExpandableListAdapter() {
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return true;
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return typeList.size();
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
/**
* 返回每组的view对象
*/
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView view = new TextView(TestExpanListActivity.this);
view.setText(typeList.get(groupPosition));
view.setPadding(50, 10, 10, 10);
return view;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return itemList.get(groupPosition).size();
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
/**
* 返回每组下面的子节点的view对象
*/
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView tv = new TextView(TestExpanListActivity.this);
tv.setText(itemList.get(groupPosition).get(childPosition));
tv.setPadding(30, 10, 10, 10);
return tv;
}
};
elv.setAdapter(adapter);
}
}