Android学习笔记(十八)——ExpandableListActivity与SimpleExpandableListAdapter
2011-09-14 20:43
417 查看
ExpandableListActivity用于显示组列表,显示效果如下图:
组列表和列表在原理上是相似的;
实现组列表的主要步骤有:
1、先建一个继承于ExpandableListActivity的Activity
2、有三个xml布局文件,main.xml中有一个ExpandableListView,代码如下:
3、最后一步编写Activity中的内容,主要填充列表中的数据,一级列表中数据用一个List表示,里面是Map结构
二级列表中数据也是一个list,里面还存放list数据
组列表和列表在原理上是相似的;
实现组列表的主要步骤有:
1、先建一个继承于ExpandableListActivity的Activity
2、有三个xml布局文件,main.xml中有一个ExpandableListView,代码如下:
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"/> <TextView android:id="@id/android:empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="No data"/> </LinearLayout>用于布局一级列表的布局文件group.xml:
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>
3、最后一步编写Activity中的内容,主要填充列表中的数据,一级列表中数据用一个List表示,里面是Map结构
二级列表中数据也是一个list,里面还存放list数据
package mars.expandable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.ExpandableListActivity; import android.os.Bundle; import android.widget.SimpleExpandableListAdapter; /* * 创建一个Activity,继承ExpandableListAcitivty */ public class MainActivity extends ExpandableListActivity { /** Called when 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"); child1.add(child1Data1); Map<String,String> child1Data2 = new HashMap<String,String>(); child1Data2.put("child", "child1Data2"); 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); } }
相关文章推荐
- Android学习笔记——ExpandableListActivity与SimpleExpandableListAdapter
- android学习--ExpandableListActivity和SimpleExpandableListAdapter的使用
- ExpandableListActivity的使用和SimpleExpandableListAdapter的使用
- ExpandableListActivity的学习心得,以及SimpleExandableListAdapter的9个参数介绍
- ListView的嵌套,ExpandableListActivity和SimpleExpandableListAdapter
- Android开发视频第二季之三:ExpandableListActivity和SimpleExpandableListAdapter的使用
- marsAndroid学习——常见控件ExpandableListActivityh和SimpleExpandableListAdapter的简单使用
- 利用SimpleExpandableListAdapter为ExpandableListActivity提供数据
- marsAndroid学习——常见控件ExpandableListActivityh和SimpleExpandableListAdapter的简单使用
- ExpandableListActivity的基本使用方法 ,SimpleExpandableListAdapter的基本使用方法
- 模拟QQ分组(具有伸缩功能) (添加开源框架的光闪烁效果)SimpleExpandableListAdapter 适配器的用法,并且可添加组及其组内数据。
- android学习笔记之ExpandableListActivity
- Android上 ExpandableListActivity及CursorTreeAdapter的使用简介
- ListActivity+sqlite+SimpleCursorAdapter简单实例
- ListActivity+sqlite+SimpleCursorAdapter
- SimpleExpandableListAdapter
- Android适配器之-----SimpleExpandableListAdapter
- SimpleExpandableListAdapter
- 理解SimpleExpandableListAdapter的构造函数
- 理解SimpleExpandableListAdapter的构造函数