ExpandableListView是ListView的子类,他在ListView的基础上进行了扩展,它可以将列表项分为几组....以下就是我的一些代码

package com.hurui.myexpandablelistview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {private ExpandableListView my_expand;
    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        my_expand=(ExpandableListView)findViewById(R.id.my_expanview);
        final String[] armtype={"我的好友","我的兄弟","我的寝室"};
        final String[][] arms={{"李文涛","李建宝","刘巍","郑淼","赵超"},
                {"王弄潇","高敏","陈浩","冯辉"},
                {"胡锐","付必胜","徐浩浩","陈磊"}};
        ExpandableListAdapter adapter=new BaseExpandableListAdapter() {@Override
            //返回共有多少个父选项
            public int getGroupCount() {return armtype.length;
            }//返回子菜单的长度....
            @Override
            public int getChildrenCount(int groupPosition) {return arms[groupPosition].length;
            }//返回父选项下的数组
            @Override
            public Object getGroup(int groupPosition) {return armtype[groupPosition];
            }//返回子选项的第几个...
            @Override
            public Object getChild(int groupPosition, int childPosition) {return arms[groupPosition][childPosition];
            }//返回父选项的ID
            @Override
            public long getGroupId(int groupPosition) {return groupPosition;
            }//返回子选项的ID...
            @Override
            public long getChildId(int groupPosition, int childPosition) {return childPosition;
            }@Override
            public boolean hasStableIds() {return true;
            }@Override
            public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {LinearLayout ll=new LinearLayout(MainActivity.this);
                ll.setOrientation(LinearLayout.HORIZONTAL);
                ImageView logo=new ImageView(MainActivity.this);
                logo.setImageResource(R.mipmap.img08);
                ll.addView(logo);
                TextView textView=getTextView();
                textView.setText(getGroup(groupPosition).toString());
                ll.addView(textView);
                return ll;
            }//得到子选项的view
            @Override
            public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {TextView tv=getTextView();
                tv.setText(getChild(groupPosition,childPosition).toString());
                return tv;
            }@Override
            public boolean isChildSelectable(int groupPosition, int childPosition) {return true;
            }//自定义的TextView控件
            public TextView getTextView(){TextView tv=new TextView(MainActivity.this);
                AbsListView.LayoutParams ap=new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,64);
                tv.setLayoutParams(ap);
                tv.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
                tv.setPadding(16,0,0,0);
                tv.setTextSize(20);
               return tv;
            }};
        my_expand.setAdapter(adapter);
    }
}
 

以下是这段代码产生的效果图...

android 学习之ExpandableListView相关推荐

  1. 《Android学习指南》目录

    转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先 ...

  2. Android:Android学习路线图

    https://blog.csdn.net/libing1991_/article/details/53455243 前言 工作快一年,Android完全靠自学,看着那些基础教程一步步去做,写过简单的 ...

  3. Android微信通讯录界面代码,Android中使用Expandablelistview实现微信通讯录界面

    之前的博文<Android 中使用ExpandableListView 实现分组的实例>我简单介绍了使用ExpandableListView实现简单的好友分组功能,今天我们针对之前的所做的 ...

  4. Android学习资源汇总

    镇楼:Android官方培训课程中文版 学习网址 Android官网API,文档,开发,资讯 玩Android–鸿洋名下 trinea segmentfault头条 Google Android De ...

  5. Android学习路线

    Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环.  2.String和StringBuffer的使用.正则表达式.  3.面向对象的抽象,封装,继承 ...

  6. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  7. Android学习系列(10)--App列表之拖拽ListView(上)

    研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨.       鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...

  8. Android学习第一书

    大家好,我是一名Facebook的工程师,同时也是<第一行代码--Android>的忠实读者. 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的< ...

  9. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

最新文章

  1. Java查询spark中生成的文件_java+spark-sql查询excel
  2. DNS原理及其解析过程(转)
  3. 定了!2021年数据中心《能源管理师》考试,全国报名入口!
  4. 大寨鸿蒙系统的电器,华为传来两个好消息,鸿蒙OS大时代将于6月2日正式开启...
  5. Mysql数据库的高可用
  6. cvc 降噪_哪款蓝牙耳机降噪效果最好,降噪音质俱佳的蓝牙耳机推荐
  7. duplicate复制数据库
  8. OpenSSL生成RSA公私钥(java)
  9. centos usb转网口_Linux环境下使用 USB转串口驱动(一)
  10. 云原生API网关 - 开源项目Hango网关设计与实践
  11. Android APP开机自启动基本方法
  12. 基于Java的网上作业批改系统
  13. 从“黑五”看亚马逊海外购的变与不变
  14. 2020大数据面经整理
  15. 如何进行windows10 c盘清理?使用什么清理方法?
  16. 架构师修炼之道学习笔记
  17. 物权法全文内容有哪些呢-广告外链_有哪些网络推广免费平台?通过哪些平台进行免费推广及注意事项?...
  18. 数字认证公司的bjca证书报错原因,垃圾产品
  19. 美国FBI招聘测试题
  20. SVA——断言属性之序列(sequence与property的用法)

热门文章

  1. 洛谷P3258 [JLOI2014]松鼠的新家
  2. 每日签到功能怎么实现的?
  3. 计算机基础图文混合排版作业,《图文表混合排版》说课稿
  4. 青龙面板羊毛脚本之太太乐积分话费
  5. 数字证书和密钥加密的理解
  6. 怜惜,才是最真挚的爱情
  7. c语言动态规划回溯的原理,「算法思想」分治、动态规划、回溯、贪心一锅炖...
  8. python笔记--使用solve算出黄金分割比近似值
  9. Apache配置应用与日志管理__GongWei1997
  10. 在2012年09月20号这一天,2345浏览器的V2.1版本,溜出来了!