热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分组的listview——ExpandableListView

开发使用到的数据统计时可以用分组的ExpandablelistView效果:第一步.layout中定义ExpandablelistView,和定义普通的listvie

开发使用到的数据统计时可以用分组的ExpandablelistView

效果:

 

第一步.layout中定义ExpandablelistView,和定义普通的listview一样

<RelativeLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"xmlns:tools&#61;"http://schemas.android.com/tools"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:paddingBottom&#61;"&#64;dimen/activity_vertical_margin"android:paddingLeft&#61;"&#64;dimen/activity_horizontal_margin"android:paddingRight&#61;"&#64;dimen/activity_horizontal_margin"android:paddingTop&#61;"&#64;dimen/activity_vertical_margin"tools:context&#61;"com.example.myexpandablelistview.MainActivity" ><ExpandableListViewandroid:id&#61;"&#64;&#43;id/mylistview"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent" >ExpandableListView>RelativeLayout>

 

第二步&#xff0c;设置组和子的数据源

第三步&#xff0c;自定义myadapter继承BaseExpandableListAdapter&#xff0c;复写方法

第四部&#xff0c;给listview设置adapter

package com.example.myexpandablelistview;import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;public class MainActivity extends Activity {private ExpandableListView mylistview;//组视图数据String[] parents&#61;{"三国人物","水浒人物","西游人物"};//子视图数据String[][] children&#61;{{"曹操","孙权","刘备"},{"宋江","吴用","高俅","林冲"},{"孙悟空","红孩儿","哪吒"}};&#64;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mylistview&#61;(ExpandableListView) findViewById(R.id.mylistview);mylistview.setAdapter(new Myadapter());}//自定义adapterclass Myadapter extends BaseExpandableListAdapter{&#64;Override//组数public int getGroupCount() {return parents.length;}&#64;Override//每组的子数public int getChildrenCount(int groupPosition) {return children[groupPosition].length;}&#64;Override//返回对应的组public Object getGroup(int groupPosition) {return parents[groupPosition];}&#64;Override//返回对应的子public Object getChild(int groupPosition, int childPosition) {return children[groupPosition][childPosition];}&#64;Override//返回组idpublic long getGroupId(int groupPosition) {return groupPosition;}&#64;Override//返回子idpublic long getChildId(int groupPosition, int childPosition) {return childPosition;}&#64;Overridepublic boolean hasStableIds() {return true;}&#64;Override//返回组试图public View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {TextView view;if(convertView!&#61;null){view&#61;(TextView) convertView;}else{view &#61;new TextView(MainActivity.this);}view.setText(parents[groupPosition]);view.setBackgroundColor(Color.RED);return view;}&#64;Override//返回子试图public View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {TextView view;if(convertView!&#61;null){view&#61;(TextView) convertView;}else{view &#61;new TextView(MainActivity.this);}view.setText(children[groupPosition][childPosition]);return view;}&#64;Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {return true;}}}

 


转载于:https://www.cnblogs.com/xurui1995/p/5678113.html


推荐阅读
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 四、连接屏幕流各位读者好!我们已经到了应用开发的一个重要阶段——连接屏幕。如您所知,我们在上一章 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • 在最近的一系列文章,对midipadAPP,有一个关于一个radialgradiant渲染每个padview利用的探讨,对审美的原因&#x ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 2021年最详细的Android屏幕适配方案汇总
    1Android屏幕适配的度量单位和相关概念建议在阅读本文章之前,可以先阅读快乐李同学写的文章《Android屏幕适配的度量单位和相关概念》,这篇文章 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 在加载一个第三方厂商的dll文件时,提示“找不到指定模块,加载失败”。由于缺乏必要的技术支持,百思不得期间。后来发现一个有用的工具 ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • 使用Flutternewintegration_test进行示例集成测试?回答首先在dev下的p ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • 当我在doWork方法中运行代码时,通过单击button1,进度条按预期工作.但是,当我从其他方法(即btn2,btn3)将列表传递给doWork方法时,进度条在启动后会跳转到10 ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
author-avatar
张群羽圣文
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有