android学习笔记之ExpandableListActivity

本文详细介绍了如何创建ExpandableListActivity,包括XML布局文件的编写和代码实现,通过实例展示了如何设置一级和二级条目数据,以及如何生成SimpleExpandableListAdapter来展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建ExpandableListActivity的步骤

//main.xml

<?xml version="1.0"encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <ExpandableListView android:id="@id/android:list"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"

       android:drawSelectorOnTop="false"></ExpandableListView>

    <TextView android:id="@id/android:empty"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"

       android:text="No data"/>

</LinearLayout>

 

//group.xml

<?xml version="1.0"encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <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"/>

</LinearLayout>

 

//child.xml

<?xml version="1.0"encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

       <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"/>

</LinearLayout>

 

public class ExpandableListActivityDemoActivity extendsExpandableListActivity {

    /** Calledwhen the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.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 = newSimpleExpandableListAdapter(

             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});

        setListAdapter(sela);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值