- 浏览: 324135 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
ExpandableListView继承于ListView,但是它不同于ListView,它可以有多个Group,每一个Group里都可以有多个Child。
比如可以实现QQ好友栏里类似的功能。
<span style="font-size:16px;">import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.TextView; /** * @author wing * @date 2011/8/15 */ public class OwnExpandableListAdapter extends BaseExpandableListAdapter { private String[] group; private String[][] child; private Context context; public OwnExpandableListAdapter(String[] group,String[][] child,Context context) { this.group=group; this.child=child; this.context=context; } /** * 获取Group中的一个Child的值 */ @Override public Object getChild(int groupPosition, int childPosition) { return child[groupPosition][childPosition]; } /** * 获取Group中的一个Child的ID,本人没有写 */ @Override public long getChildId(int groupPosition, int childPosition) { return 0; } /** * Child的视图 */ @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { //每个Group的Child,用TextView表示,当然也可以用其他的例如button之类的控件 TextView textView=new TextView(context); textView.setText(child[groupPosition][childPosition]); textView.setPadding(36, 0, 0, 0); return textView; } /** * 某个Group的Child的数量 */ @Override public int getChildrenCount(int groupPosition) { return child[groupPosition].length; } @Override public Object getGroup(int arg0) { return null; } /** * Group的数目 */ @Override public int getGroupCount() { return group.length; } @Override public long getGroupId(int arg0) { return 0; } /** * Group的视图 */ @Override public View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) { //每个Group也用TextView表示,当然也可以用其他的例如button之类的控件 TextView textView=new TextView(context); textView.setText(group[groupPosition]); textView.setPadding(36, 0, 0, 0); return textView; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public boolean isChildSelectable(int arg0, int arg1) { // TODO Auto-generated method stub return false; } }</span>
上面是实现的一个ExpandableListAdapter,用于给ExpandableListView填充数据。
可以看见每一个Group和Child都是用的TextView。当然也可以用Button。
然后再使用。
String[]group= {"我的好友","同事"}; String[][]child= {{"张三","李四","王五"},{"赵六","杨七","嘿嘿","哈哈"}}; expandableListView.setAdapter(new OwnExpandableListAdapter(group, child, this));
另外,其实ExpandableListView也可以实现HTML中下拉框的功能。
首先介绍几个方法:
expandableListView.setDivider();这个是设定每个Group之间的分割线。
expandableListView.setGroupIndicator();这个是设定每个Group之前的那个图标。
expandableListView.collapseGroup(int group); 将第group组收起
expandableListView.expandGroup(int group); 将第group组展开
那么如何实现HTML中下拉框类似的功能呢?
由于我做的时候使用的是项目素材。不方便截图。所以就给大家一点提示。
每个Group和每个Child都使用Button,然后设定自己的样式(button selector)。
然后,每个Button都添加自己的事件,Group Button点击时,展开列表。Child Button点击时,收缩列表,并且改变Group Button的内容即可。
这样就可以实现下拉框的功能了。而且根据Button selector,基本可以定义出自己的样式。
发表评论
-
Android中AsyncTask的简单用法
2012-01-13 16:00 1117在开发Android移动客户端的时候往往要使用多线程来进行操 ... -
Android应用的自动升级、更新模块的实现 .
2011-11-16 14:01 640http://www.eoeandroid.com/threa ... -
一个APK反编译利器Apktool
2011-11-16 13:54 1546一个APK反编译利器Apktool APK 本地化 ... -
自定义Android标题栏TitleBar布局
2011-11-14 14:13 1211很多网友发现自己Android程序的标题栏TitleBar区域 ... -
Android GPS获取地理位置 .
2011-11-14 14:11 820import android.app.Activity; i ... -
android ListView详解
2011-11-14 13:48 1020在android开发中ListView是比较常用的组件,它以列 ... -
Android之Content provider 详解
2011-11-14 13:35 2430Android是如何实现应用程序之间数据共享的?一个应用程序可 ... -
Android源码地址
2011-11-12 19:14 1018http://blog.csdn.net/ilittleone ... -
android之File
2011-11-11 22:39 19631:Fileservice package cn.itcas ... -
Android知识补漏
2011-11-09 22:33 01:AndroidManifiest.xml < ... -
深入剖析Android消息机制
2011-11-09 14:13 930在Android中,线程内部或者线程之间进行信息交互时经常会使 ... -
Android之Handler详解(四)
2011-11-09 14:00 1257d、自己创建新的线程,然后在新线程中创建Looper,主线程调 ... -
Android之Handler详解(三)
2011-11-09 13:58 1343c、将消息队列绑定到子线程上,主线程只管通过Handl ... -
Android之Handler详解(二)
2011-11-09 13:54 1626二:sendMessage版本的Handl ... -
Android之Handler详解(一)
2011-11-09 13:22 2260一个Handler允许你发送和处理消息(Message)以及 ... -
关于StartActivityForResult方法的使用
2011-10-31 17:11 1045根据方法名可知 这个方法是要得到启动后的Activity返回的 ... -
Android 悬浮Activity并可拖动(访悬浮歌词)
2011-10-24 16:23 2036天天动听, 这款Android手机上的音乐播放器,相信不少朋友 ... -
Android GWES
2011-10-24 16:13 1145第八章 Android GWES 8.1 View Syst ... -
Android系统服务-WindowManager
2011-10-24 16:10 1411WindowManager是Android中一个重要的服务 ... -
http通信
2011-10-15 17:31 1064HTTP(HyperText Transfer Proto ...
相关推荐
android的ExpandableListView组件.doc
基于自定义适配器的ExpandableListView源码.zip
安卓Android源码——基于自定义适配器的ExpandableListView源码.zip
Android 基于自定义适配器的ExpandableListView源码.zip源码资源下载Android 基于自定义适配器的ExpandableListView源码.zip源码资源下载
Android 基于自定义适配器的ExpandableListView源码.rar
Android基于自定义适配器的ExpandableListView源码.zip
Android 基于自定义适配器的ExpandableListView源码.zip
Android 基于自定义适配器的ExpandableListView源码.zip项目安卓应用源码下载Android 基于自定义适配器的ExpandableListView源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3....
Android实现自定义适配器的ExpandableListView示例,准备一级列表中显示的数据:2个一级列表,分别显示"group1"和"group2",准备第一个一级列表中的二级列表数据:两个二级列表,分别显示"childData1"和"childData2",...
Android程序研发源码Android 基于自定义适配器的ExpandableListView源码.zip
Android源码——基于自定义适配器的ExpandableListView源码.zip
android ExpandableListView三级菜单的使用,多级菜单下拉与隐藏,ExpandableListView的简单使用
本demo实现功能为:Expandablelistview子项checkBox先获取已选择状态,在次过程中可修改子项选择,最终提交选择子类的项,并打印相关数据
安卓开发-android基于自定义适配器的ExpandableListView.zip.zip
android ExpandableListView简单例子