- 浏览: 534935 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
ExpandableListView控件的简单使用
这里的布局没有进行美化,只是功能的简单实现。
先看一下效果图:
[img]
[/img]
点击展开后效果:
[img]
[/img]
工程结构图:
[img]
[/img]
三个布局文件:
首先,第一个布局文件main.xml是在主界面定义一个ExpandableListView ,在这里我们就要和在做ListView是的方法做下对比了,其实这个listView的显示类似。主要是用来显示ExpandableListView 下的数据。第二个布局文件是定义ExpandableListView 下的一级条目目录。在这里我只为一级条目目录添加一个textView控件。第三个布局文件是定义ExpandableListView 下的二级条目目录,和一级条目目录一样,布局文件里也只有一个TextView控件。
main.xml
groups.xml
childs.xml
ExpandableActivity:
这个控件和ListView很相似,在学习的过程中,可以结合ListView的用法的来使用。
这里的布局没有进行美化,只是功能的简单实现。
先看一下效果图:
[img]
[/img]
点击展开后效果:
[img]
[/img]
工程结构图:
[img]
[/img]
三个布局文件:
首先,第一个布局文件main.xml是在主界面定义一个ExpandableListView ,在这里我们就要和在做ListView是的方法做下对比了,其实这个listView的显示类似。主要是用来显示ExpandableListView 下的数据。第二个布局文件是定义ExpandableListView 下的一级条目目录。在这里我只为一级条目目录添加一个textView控件。第三个布局文件是定义ExpandableListView 下的二级条目目录,和一级条目目录一样,布局文件里也只有一个TextView控件。
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:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@id/android:empty" android:text="No Data"/> </LinearLayout>
groups.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:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/group" android:textSize="25sp" android:paddingLeft="35px" android:paddingTop="10px" android:paddingRight="5px" android:paddingBottom="10px" android:text="No Data"/> </LinearLayout>
childs.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:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/child" android:textSize="15sp" android:paddingLeft="25px" android:paddingTop="10px" android:paddingRight="5px" android:paddingBottom="10px" android:text="No Data"/> </LinearLayout>
ExpandableActivity:
package com.amaker.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.view.View; import android.widget.ExpandableListView; import android.widget.SimpleExpandableListAdapter; /** * 继承ExpandableListActivity类 */ public class ExpandableActivity extends ExpandableListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 创建一级条目 List<Map<String, String>> groups = new ArrayList<Map<String, String>>(); //创建两个一级条目标题 Map<String, String> group1 = new HashMap<String, String>(); group1.put("group", "音乐"); Map<String, String> group2 = new HashMap<String, String>(); group2.put("group", "歌词"); groups.add(group1); groups.add(group2); // 创建一级条目下的的二级条目 List<Map<String, String>> child1 = new ArrayList<Map<String, String>>(); //同样是在一级条目目录下创建两个对应的二级条目目录 Map<String, String> childdata1 = new HashMap<String, String>(); childdata1.put("child", "青花瓷"); Map<String, String> childdata2 = new HashMap<String, String>(); childdata2.put("child", "东风破"); child1.add(childdata1); child1.add(childdata2); //同上 List<Map<String, String>> child2 = new ArrayList<Map<String, String>>(); Map<String, String> childdata3 = new HashMap<String, String>(); childdata3.put("child", "青花瓷.lrc"); Map<String, String> childdata4 = new HashMap<String, String>(); childdata4.put("child", "东风破.lrc"); child2.add(childdata3); child2.add(childdata4); // 将二级条目放在一个集合里,供显示时使用 List<List<Map<String, String>>> childs = new ArrayList<List<Map<String, String>>>(); childs.add(child1); childs.add(child2); /** * 使用SimpleExpandableListAdapter显示ExpandableListView * 参数1.上下文对象Context * 参数2.一级条目目录集合 * 参数3.一级条目对应的布局文件 * 参数4.fromto,就是map中的key,指定要显示的对象 * 参数5.与参数4对应,指定要显示在groups中的id * 参数6.二级条目目录集合 * 参数7.二级条目对应的布局文件 * 参数8.fromto,就是map中的key,指定要显示的对象 * 参数9.与参数8对应,指定要显示在childs中的id */ SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter( this, groups, R.layout.groups, new String[] { "group" }, new int[] { R.id.group }, childs, R.layout.childs, new String[] { "child" }, new int[] { R.id.child }); setListAdapter(adapter); } /** * 设置哪个二级目录被默认选中 */ @Override public boolean setSelectedChild(int groupPosition, int childPosition, boolean shouldExpandGroup) { //do something return super.setSelectedChild(groupPosition, childPosition, shouldExpandGroup); } /** * 设置哪个一级目录被默认选中 */ @Override public void setSelectedGroup(int groupPosition) { //do something super.setSelectedGroup(groupPosition); } /** * 当二级条目被点击时响应 */ @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { //do something return super.onChildClick(parent, v, groupPosition, childPosition, id); } }
这个控件和ListView很相似,在学习的过程中,可以结合ListView的用法的来使用。
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2011android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2047Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1554SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 798Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 740转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1017===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1697(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1435在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 984package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1255工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1010SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1228Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 799一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1173运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 903package com.zzl.tools; impor ...
相关推荐
以上就是关于Android中`ExpandableListView`控件的使用介绍。通过合理的数据结构和自定义适配器,你可以实现复杂而富有层次的用户界面,满足各种场景的需求。在实际开发中,还可以根据需求进行更多的定制和优化。
这篇博客“Android中ExpandableListView控件基本使用”可能详细介绍了如何在应用程序中有效地利用这个控件。虽然描述部分为空,但我们可以基于`ExpandableListView`的基本特性和常见用法进行深入探讨。 `...
在Android开发中,`ExpandableListView`是一种常用的控件,它扩展了标准的`ListView`功能,允许子项可以被展开或折叠,呈现层次结构的数据。这个控件非常适合用来展示具有树状结构的信息,比如菜单、目录或者组织...
QML 中没有直接提供类似 android 的ExpandableListView二级列表控件,treeView,但是用 treeView 实在是有些不方便,并且达不到想要的效果,所以干脆用 ListView 来扩展一个。
`ExpandableListView`是Android平台中一个非常实用的列表控件,它允许用户展示层次结构的数据,例如,一个父项可以展开显示多个子项。在Android应用开发中,当需要展示具有嵌套关系的数据时,`ExpandableListView`是...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许我们展示具有层次结构的数据,比如一个多级菜单分类的场景。在这个例子中,我们将会深入探讨如何利用`ExpandableListView`来创建一个可展开和折叠的...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,每个分组下可以包含多个子项。这种控件在显示层次结构数据时非常实用,比如目录结构、菜单列表或者分类信息展示。下面将详细...
在Android开发中,ExpandableListView是一个非常实用的控件,它允许我们展示具有层次结构的数据,比如本例中的省市区结构。在这个场景中,我们首先从一个JSON数据源解析出省份和城市信息,然后利用...
以上就是关于Android `ExpandableListView`的使用介绍,通过这个控件,开发者可以方便地创建具有级联效果的菜单,实现更丰富的用户交互体验。在实际项目中,还可以结合`AsyncTask`或`LiveData`等技术来动态加载和...
在Android开发中,ExpandableListView是一个非常实用的原生控件,它允许用户展示...这个案例是一个很好的学习资源,可以帮助你掌握如何在实际项目中利用ExpandableListView控件,特别是处理一些特殊交互需求时的技巧。
本人博客:Android常用控件(能折叠的ListView)--ExpandableListView的使用模仿QQ好友列表的demo
在"Android项目实战--手机卫士33--ExpandableListView的使用"这个主题中,我们将深入探讨如何在实际的手机卫士应用中有效地利用这种控件。 首先,`ExpandableListView`是`ListView`的一个扩展,提供了更丰富的功能...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,展示层次结构的数据。这个控件比普通的`ListView`更加强大,因为它提供了多级的视图,使得数据的组织更加清晰。接下来,我们将...
- 初始化:在XML布局文件中添加`ExpandableListView`控件,并在Java代码中通过`findViewById()`获取实例。 - 数据源:`ExpandableListView`需要两种数据结构,一是`List<ExpandableGroup>`表示父列表项,二是`List...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展示具有层次结构的数据。这个控件的独特之处在于,它可以将数据项分组,每个组都可以展开或折叠,以此来显示或隐藏子项。这使得在有限的屏幕...