其实也就是自定义了一个Adapter,也可以使用SimpleExpandableListAdapter来代替。
package com.szy; import android.app.ExpandableListActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseExpandableListAdapter; import android.widget.TextView; /** * 扩展的Listview * @author Administrator * */ public class MainActivity extends ExpandableListActivity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); MyExpandableListAdapter adapter=new MyExpandableListAdapter(); setListAdapter(adapter); } public class MyExpandableListAdapter extends BaseExpandableListAdapter{ public String[] groups={"我的好友","大学同学","高中同学"}; public String[][] childrens={{"刘亦菲","林志玲","林心如"},{"诸葛孔明","关羽"},{"周迅","周星驰","成龙"}}; public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childrens[groupPosition][childPosition]; } public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition; } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub TextView textView=getGenericView(); textView.setText(getChild(groupPosition, childPosition).toString()); return textView; } //新建一个TextView public TextView getGenericView() { // Layout parameters for the ExpandableListView AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 64); TextView textView = new TextView(MainActivity.this); textView.setLayoutParams(lp); // Center the text vertically textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); // Set the text starting position textView.setPadding(36, 0, 0, 0); return textView; } public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return childrens[groupPosition].length; } public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return groups[groupPosition]; } public int getGroupCount() { // TODO Auto-generated method stub return groups.length; } public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub TextView textView = getGenericView(); textView.setText(getGroup(groupPosition).toString()+"ABCD"); return textView; } public boolean hasStableIds() { // TODO Auto-generated method stub return true; } public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } } }
http://www.eoeandroid.com/thread-273332-1-1.html
相关推荐
在这个主题下,我们将深入探讨`ExpandableListActivity`的工作原理、使用方法以及相关源码分析。 首先,`ExpandableListActivity`是Android SDK提供的一种便捷方式,用于创建一个包含可展开/折叠组的列表视图。它...
通过这个例子,开发者可以学习到如何在Android应用中使用`ExpandableListActivity`展示层次结构数据,并通过`Handler`实现动画效果。这在展示具有多级分类的数据时非常有用,例如日历应用的月份和日期、菜单的分类和...
PreferenceActivity和ExpandableListActivity的使用,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/77773001
### ExpandableListActivity与SimpleExpandableListAdapter的基本使用详解 在Android开发中,当我们的应用需要显示具有层次结构的数据时,例如家庭成员、公司部门结构等,普通的`ListActivity`就显得力不从心了。这...
在提供的代码示例中,我们看到`Chapter9Tutorial4`扩展了`ExpandableListActivity`,这是一个专为ExpandableListView设计的Activity基类。在`onCreate`方法中,我们需要设置两个关键的数据结构:`groupData`和`...
5. **ExpandableListActivity.doc** - ExpandableListView是一种可扩展的列表视图,能展示层级结构的数据。这部分讲述了如何创建和管理子项,以及监听和响应用户的展开和折叠操作。 6. **ContentProvider.doc** - ...
Android控件下拉框,单选按钮,复选框,自动补全,日期控件(支持显示格式:年月,年月日,月日),LauncherActivity的使用,ExpandableListActivity实现二级下拉列表,并且在列表项右边加自定义的图片,实现只展开一个菜单的功能...
- **ExpandableListActivity**: 显示可扩展列表的Activity。 - **SeekBar**: 调整数值的滑动条。 - **RatingBar**: 显示评分或等级的组件。 - **Handler**: 处理消息和运行线程的任务调度器。 - **SQLite**: 内置的...
在`ExpandableListActivity.java`或类似的文件中,你需要创建一个自定义的Adapter类,继承自`BaseExpandableListAdapter`,并实现其方法如`getGroupCount()`、`getChildrenCount(int groupPosition)`、`getGroup(int...
在Android中,我们可以使用`ExpandableListActivity`或者普通的`Activity`配合`ExpandableListView`进行布局。数据通常由`ExpandableListAdapter`管理,这个适配器需要实现`BaseExpandableListAdapter`接口。 在...
import android.app.ExpandableListActivity; import android.os.Bundle; import android.provider.Contacts.People; import android.util.Log; import android.view.ContextMenu; import android.view.Gravity; ...
在我们的示例代码中,我们创建了一个 ActivityMain 类,该类继承自 ExpandableListActivity,并实现了 onCreate()、onCreateContextMenu() 和 onContextItemSelected() 等方法。这些方法负责初始化列表控件、创建上...
这里,开发者选择使用ExpandableListActivity而不是Dialog,因为Dialog可能无法满足复杂的交互需求。在账目选择界面中,长按子节点会触发管理账目菜单,如图3所示,用户可以在此添加、删除或修改账目。 为了实现...
- **ExpandableListActivity-扩展列表页**:`ExpandableListActivity`是一种更为复杂的列表页面,它可以展示具有层次结构的数据。每个顶层项都可以展开显示其子项。 #### TabActivity—标签页 - **TabActivity-标签...
本教程将深入讲解如何在Android应用中使用`ExpandableListView`。 首先,我们需要在布局文件中添加`ExpandableListView`。例如,在 `main.xml` 文件中,我们创建了一个`LinearLayout` 并在其内部嵌入了一个`...
首先,`ActivityMain`继承自`ExpandableListActivity`,这是一个专门为`ExpandableListView`定制的Activity基类,它简化了扩展列表视图的集成。在`onCreate`方法中,我们设置Activity的标题,并创建了一个`...
`ExpandableListView`通常与`ExpandableListActivity`一起使用,就像`ListActivity`与`ListView`的关系一样。 首先,我们需要创建一个包含`ExpandableListView`的布局。在`main.xml`中,你可以看到以下代码: ```...
(2)第二种方法则是创建一个Activity继承自ExpandableListActivity,而后通过getExpandableListView()方法可获得一个ExpandableListView对象。 第二种方法仅适用于一个页面中只有一个ExpandableListView的情况。...
下面我们将深入探讨如何使用`ExpandableListView`。 首先,`ExpandableListView`的布局文件结构通常包含三个部分:主界面XML(如`main.xml`)、父标题界面XML(如`groups.xml`)和子内容界面XML(如`childs.xml`)...
这时,我们可以使用`ExpandableListView`控件,它提供了多级列表视图,允许用户展开或收起各个组来查看或隐藏子项。本文将详细介绍如何在Android中实现这样一个功能。 首先,要使用`ExpandableListView`,你需要在...