activity_main.xml:
<ExpandableListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /> <TextView android:id="@id/android:empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="No data"/>
group.xml:
<TextView android:id="@+id/groupTo" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="60px" android:paddingTop="10px" android:paddingBottom="10px" android:textSize="26sp" android:text="No data"/>
child.xml:
<TextView android:id="@+id/childTo" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="50px" android:paddingTop="5px" android:paddingBottom="5px" android:textSize="20sp" android:text="No data"/>
MainActivity.java:
package leihu.expandablelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bundle; import android.app.ExpandableListActivity; import android.widget.SimpleExpandableListAdapter; public class MainActivity extends ExpandableListActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //定义一个List,该List对象为一级条目提供数据 List<Map<String,String>>groups = new ArrayList<Map<String,String>>(); Map<String,String> group1 = new HashMap<String,String>(); group1.put("group", "group1"); Map<String,String> group2 = new HashMap<String,String>(); group2.put("group", "group2"); groups.add(group1); groups.add(group2); //定义一个List,该List对象为第一个一级条目提供二级条目的数据 List<Map<String,String>>child1= new ArrayList<Map<String,String>>(); Map<String,String> child1Data1 = new HashMap<String,String>(); child1Data1.put("child", "child1Data1"); Map<String,String> child1Data2 = new HashMap<String,String>(); child1Data2.put("child", "child1Data2"); child1.add(child1Data1); child1.add(child1Data2); //定义一个List,该List对象为第二个一级条目提供二级条目的数据 List<Map<String,String>>child2= new ArrayList<Map<String,String>>(); Map<String,String> child2Data = new HashMap<String,String>(); child2Data.put("child", "child2Data"); child2.add(child2Data); //定义一个List,该List对象用来存储所有二级条目的数据 List<List<Map<String,String>>>childs = new ArrayList<List<Map<String,String>>>(); childs.add(child1); childs.add(child2); //生成一个simpleExpandableListAdapter对象 //1.context //2.一级条目的数据 //3.用来设置一级条目样式的布局文件 //4.指定一级条目数据的key //5.指定一级条目数据显示控件的id //6.指定二级条目的数据 //7.用来设置二级条目样式的布局文件 //8.指定二级条目数据的key //9.指定二级条目数据显示控件的id SimpleExpandableListAdapter sela = new SimpleExpandableListAdapter( this, groups, R.layout.group, new String[]{"group"}, new int[]{R.id.groupTo},childs,R.layout.child, new String[]{"child"},new int[]{R.id.childTo}); //将SimpleExpandableListAdapter对象设置给当前的ExpandableListActivity setListAdapter(sela); } }