package
com.ylf;
import
java.util.ArrayList;
import
java.util.List;
import
android.app.Activity;
import
android.app.ExpandableListActivity;
import
android.os.Bundle;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.BaseExpandableListAdapter;
import
android.widget.ExpandableListView;
import
android.widget.LinearLayout;
import
android.widget.TextView;
public
class MainActivity extends Activity {
List parents =
null;
List children =
null;
ExpandableListView listView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView =
(ExpandableListView)findViewById(R.id.expand);
parents = new
ArrayList();
children
= new ArrayList();
List children1 =new
ArrayList();
List children2 =new
ArrayList();
List children3 =new
ArrayList();
List children4 =new
ArrayList();
parents.add("水果");
parents.add("蔬菜");
parents.add("卫生间");
parents.add("垃圾堆");
children1.add("香蕉");
children1.add("苹果");
children2.add("空心菜");
children2.add("西红柿");
children3.add("马桶");
children3.add("水池");
children4.add("屎虫");
children4.add("苍蝇");
children.add(children1);
children.add(children2);
children.add(children3);
children.add(children4);
listView.setAdapter(new MyExpandableListAdapter());
listView.setGroupIndicator(null);
}
class MyExpandableListAdapter extends
BaseExpandableListAdapter{
@Override
public Object getChild(int arg0, int arg1) {
return children.get(arg0).get(arg1);
}
@Override
public long getChildId(int arg0, int arg1) {
return arg0*parents.size()+arg1;
}
@Override
public View getChildView(int parentCount, int childCount, boolean
arg2, View arg3,
ViewGroup arg4) {
LayoutInflater inflater =
LayoutInflater.from(MainActivity.this);
View view = inflater.inflate(R.layout.child, null);
LinearLayout ll =
(LinearLayout)view.findViewById(R.id.child);
TextView tv = new TextView(MainActivity.this);
tv.setPadding(60, 5, 5, 5);
tv.setText((String)getChild(parentCount, childCount));
ll.addView(tv);
ll.setPadding(5, 5, 5, 5);
return view;
}
@Override
public int getChildrenCount(int groupPosition) {
return children.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return parents.get(groupPosition);
}
@Override
public int getGroupCount() {
return parents.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean
isExpanded,
View convertView, ViewGroup parent) {
LayoutInflater inflater =
LayoutInflater.from(MainActivity.this);
View view = inflater.inflate(R.layout.parent, null);
TextView tv = (TextView)view.findViewById(R.id.parent);
tv.setPadding(50, 5, 5, 5);
tv.setText((String)getGroup(groupPosition));
return view;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int
childPosition) {
return false;
}
}
}