ExpandableListView练习代码

android ExpandableListView简单应用及listview模拟ExpandableListView 首先我们还是来看一些案例,还是拿搜狐新闻客户端,因为我天天上下班没事爱看这个东东,上班又没时间看新闻,上下班路途之余浏览下新闻打发时间嘛.                            看这个效果挺棒吧,其实实现起来也不难,我简单说明下. 首先我们用到的控件是:ExpandableListView 布局文件: <RelativeLayout xmlns:android="ht 阅读详情

ExpandableListView是可展开的列表组件

activity_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/list"
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content" 
	android:childIndicator="@drawable/ic_launcher"
	/>
</LinearLayout>

MainActivity.java

package com.example.expandablelistview;

import android.os.Bundle;
import android.app.Activity;
import android.app.ExpandableListActivity;
import android.view.Gravity;
import android.view.Menu;
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 Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//Create a "BaseExpandableListAdapter" object
		ExpandableListAdapter adapter = new BaseExpandableListAdapter() {
			
			int[] logos = new int[]{
					R.drawable.p,
					R.drawable.t,
					R.drawable.z
			};
			private String[] armTypes = new String[]{
					"神族兵种","虫族兵种","人族兵种"
			};
			private String[][] arms = new String[][]{{"狂战士","龙骑士","黑暗圣堂","电兵"},{"小狗","刺蛇","飞龙","自爆飞机"},
					{"机枪兵","护士MM","幽灵"}};
			
			
			@Override
			public boolean isChildSelectable(int groupPosition, int childPosition) {
				// TODO Auto-generated method stub
				return true;
			}
			
			@Override
			public boolean hasStableIds() {
				// TODO Auto-generated method stub
				return true;
			}
			
			//该方法决定每个组选项的外观
			@Override
			public View getGroupView(int groupPosition, boolean isExpanded,
					View convertView, ViewGroup parent) {
				LinearLayout ll = new LinearLayout(MainActivity.this);
				ll.setOrientation(0);
				ImageView logo = new ImageView(MainActivity.this);
				logo.setImageResource(logos[groupPosition]);
				ll.addView(logo);
				TextView textView = getTextView();
				textView.setText(getGroup(groupPosition).toString());
				ll.addView(textView);
				
				return ll;
			}
			
			@Override
			public long getGroupId(int groupPosition) {
				// TODO Auto-generated method stub
				return groupPosition;
			}
			
			@Override
			public int getGroupCount() {
				// TODO Auto-generated method stub
				return armTypes.length;
			}
			
			//获取指定组位置处的组数据
			@Override
			public Object getGroup(int groupPosition) {
				// TODO Auto-generated method stub
				return armTypes[groupPosition];
			}
			
			@Override
			public int getChildrenCount(int groupPosition) {
				// TODO Auto-generated method stub
				return arms[groupPosition].length;
			}
			
			//The method determines the appearance of each sub-option
			@Override
			public View getChildView(int groupPosition, int childPosition,
					boolean isLastChild, View convertView, ViewGroup parent) {
				TextView textView = getTextView();
				textView.setText(getChild(groupPosition,childPosition).toString());
				return textView;
			}
			
			@Override
			public long getChildId(int groupPosition, int childPosition) {
				// TODO Auto-generated method stub
				return childPosition;
			}
			
			//Obtain the specified group location,specify the child at the child list item list item data
			@Override
			public Object getChild(int groupPosition, int childPosition) {
				// TODO Auto-generated method stub
				return arms[groupPosition][childPosition];
			}
			private TextView getTextView(){
				AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 64);
				TextView textView = new TextView(MainActivity.this);
				textView.setLayoutParams(lp);
				textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
				textView.setPadding(36, 0, 0, 0);
				textView.setTextSize(20);
				return textView;
			}
			
			
		};
		ExpandableListView expandableListView = (ExpandableListView)findViewById(R.id.list);
		expandableListView.setAdapter(adapter);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


掌握Android中ExpandableListView的全面应用 本文还有配套的精品资源,点击获取 简介:在Android开发中, ExpandableListView 控件用于展示层次结构数据,如菜单或目录。本文通过一个名为 ExpandableListDemo 的示例项目,详细介绍了如何有效地使用 ExpandableListView ,包括其基础、数据模型创建、适配器实现、数据绑定、点击事件... 阅读详情

相关推荐

在Android开发中掌握ExpandableListView

本文还有配套的精品资源,点击获取 简介:ExpandableListView是Android中用于展示层次化数据的控件,通过两层结构(父条目和子条目)实现展开和折叠功能,提供丰富的用户交互体验。本教程详细介绍如何使用ExpandableListView,包括创建数据模型、自定义适配器、事件监听、控制展开和折叠、性能优化、样式自定义以及状态保存与恢复等步骤,帮助开发者通过实践...

weixin_36197669的博客 1121

ExpandableListView实现可展开的ListView

最近朋友公司的一个项目中用到了一ListView的Item嵌套ListView的功能,朋友向我求助这种效果该怎么实现。ListView嵌套ListView的情况在实际开发中用到的还是比较多的。谷歌也给了我们一个这样的控件叫ExpandableListView,它可以实现item的展开效果。ExpandableListView除了比ListView多了几个方法外用法几乎和ListView用法一样,只要...

smily的博客 5377

实现ExpandableListView的侧滑删除功能

ExpandableListView是Android开发中常用的组件,用于展示具有层级结构的数据。它比普通的ListView更进一步,能够显示两级以上的列表项,使得界面层次感更强,用户交互体验更佳。自定义子项布局是提升用户体验的重要手段。允许开发者定义子项的XML布局文件。这使得我们可以精确控制子项的外观和添加自定义视图元素。首先,创建一个名为的布局文件,用于定义组视图的外观。然后,创建另一个文件来定义子项的外观。这些文件应放在项目的res/layout目录下。

weixin_31659095的博客 822

ExpandableListView使用方法详解

一、前言 “好记性不如烂笔头”,再次验证了这句话是真的很有道理啊,一个月前看了一下ExpandableListView的使用,今天再看居然忘了这个是干啥的了,今天就详细讲解一下ExpandableListView的使用方法,感觉对于二级条目显示功能都可以实现。 二、实现的功能 1、可实现二级列表条目显示功能,具体包括可自定义,父布局和子布局。可实现父布局全部展开和只展开一个功能。 ...

会飞的鱼儿的博客 2万+

深入解析STM32定时器中央对齐模式3的双中断机制

本文深入解析了STM32定时器中央对齐模式3的双中断机制。该模式在一个PWM周期内,会在计数器到达ARR(上溢)和0(下溢)时各触发一次更新中断,实现更精细的实时控制。文章详细阐述了其工作原理、配置方法,并指导如何在中断服务函数中通过DIR位区分中断来源,同时探讨了其在电机控制、数字电源等场景下的应用优势与CPU负载挑战。

weixin_29164185的博客 493

STM32G0实战:手把手教你用国产GD25Q16 Flash存储传感器数据(附完整驱动)

本文详细介绍了如何使用国产GD25Q16 Flash芯片与STM32G0系列MCU实现传感器数据存储的完整方案。从SPI接口配置、驱动层实现到存储系统架构设计,提供了实战代码和优化策略,帮助开发者快速构建高性价比的物联网数据存储系统。

weixin_30733003的博客 106

ExpandableListView编写评论回复功能

初学ExpandableListView

随风小江~ 879

银河麒麟V10离线环境下的Python项目迁移:从Windows依赖到ARM架构适配

本文详细介绍了在银河麒麟V10离线环境下将Python项目从Windows迁移到ARM架构的完整流程。重点讲解了离线安装pip、virtualenv等基础工具的方法,以及如何解决ARM架构兼容性问题,确保项目依赖正确迁移。文章还提供了常见问题解决方案和性能优化建议,帮助开发者顺利完成国产化平台适配工作。

weixin_42639246的博客 423

ExpandableListView源码解析

ExpandableListView

AdrianAndroid的专栏 985

【博弈论基础与几大经典模型】古诺模型、斯塔克尔伯格模型Stackelberg Game、价格领导模型、Bertrand模型、Sweezy模型

博弈论中经典模型☞古诺模型、斯塔克尔伯格模型、价格领导模型等

学习记录 3万+

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

天天酷科研的博客 3188

Android菜鸟练习第二十八课 ExpandableListView的使用

public class MainActivity extends AppCompatActivity { private final String GROUP = "group"; private final String CHILD = "child"; private ArrayList, Object>> data; @O

进阶的菜鸟 322

C++高级数据结构算法 | 二叉树的四种遍历算法详解(递归与非递归实现)

二叉树遍历方法 、前序遍历算法 、中序遍历算法 、后序遍历算法 、层序遍历算法

ZY-JIMMY 2565

Android ExpandableListView可展开列表

ExpandableListView使用介绍,实现ExpandableListView适配器的编写、数据的刷新、分割线的设置等。

sea_bo的博客 6659

【2025CSPJ普及组】T4. 多边形

【2025CSPJ普及组】T4. 多边形【题目描述】小 R 喜欢玩小木棍。小 R 有 n 根小木棍,第i(1≤i≤n) 根小木棍的长度为 ai。

lybc2019的博客 849

芒果YOLO11改进137:卷积AKConv篇,即插即用,具有任意采样形状和任意数量的参数的卷积内核

卷积AKConv篇,即插即用,具有任意采样形状和任意数量的参数的卷积内核

包括YOLOv5、YOLOv7、YOLOv8等模型改进 297

Android ExpandableListView嵌套ListView

ExpandableListView是一个垂直滚动显示两级列表项的视图,与ListView不同的是,它可以有两层:每一层都能够被独立的展开并显示其子项。这些子项来自于与该视图关联的BaseExpandableListAdapter。      有时候简单的ExpandableListView不能满足我们的需求,比如下面这样的需求:      这就需要在ExpandableListView里面

liuhanhan512的专栏 4019

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

方案选型:ExpandableListView 与 RecyclerTreeView,Android 树形列表该选谁?

做 Android 开发时,一旦遇到文件目录、部门组织、评论楼中楼这类层级数据,就难免纠结:**Android 树形列表**到底该用哪个控件?老牌选手 ExpandableListView 上手快、资料多;而基于 RecyclerView 实现的 RecyclerTreeView 则代表更现代、更灵活的玩法。本文不堆源码,只从性能、扩展性、动画、易用性四个维度做一次横向对比,帮你快速选对方案。

gitblog_00202的博客 725

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ExpandableListView 项目教程

ExpandableListView 项目教程 1. 项目的目录结构及介绍 ExpandableListView 项目的目录结构如下: ExpandableListView/ ├── app/ │ ├── build/ │ ├── libs/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── c...

gitblog_00849的博客 241

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android ExpandableListView使用指南

Android ExpandableListView使用指南 项目介绍 Android的ExpandableListView是一个强大的UI组件,它允许开发者展示具有层级关系的数据。这个项目是基于harishsn/ExpandableListView,旨在提供一个简洁且易用的ExpandableListView实现示例。项目展示了如何构建一个具有可展开和折叠功能的列表,这在展示分类信息或组织数据时...

gitblog_00349的博客 1070

ExpandableListView的美化以及出现的问题

如果有用到列表,有需要对列表分组,一般都会用到自定义ExplandableListView,这个控件其实很自由的,可以与很多控件组合使用,现在实现以下的效果: 组与组分开可以用图片处理,图片关键是组与列表的拼接。然后就是自定义BaseExpandableListAdapter中加些判断,就好了,下面是代码: 主页布局main.xml <LinearLayout xmlns:andr

zoeice的专栏 2万+

ExpandableListView

package com.example.application04; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpan...

asjklm的博客 166

【ExpandableListView】---3 小结和练习

ExpandableListView,通过按钮新增组,长按组(选择功能 重命名或删除组)

在远处,不远处 436

ExpandableListView详解

文章目录 效果图 ExpandableListView的简介与使用 去掉ExpandableListView的箭头以及自定义Indicator 解决setOnChildClickListener失效问题 解决collapseGroup(i)崩溃问题 解决group_item.xml中包含CheckBox、EditText等,点击不能展开的问题 1.效果图 2.ExpandableListView的

lzp2015的博客 2446

ExpandableListView的监听器

ExpandableListView实现代码参考上一篇文章。这里说下监听器:适配器里的改动:

Beginniqg 703

Android 使用ExpandableListView时,需要注意哪些细节

若 ExpandableListView 处于 LinearLayout 中,可以使用 android:layout_weight 属性来分配剩余空间。如果 ExpandableListView 位于 RelativeLayout 中,需要使用相对定位属性来确定其位置。可以使用 android:scrollbars 属性来控制滚动条的显示方式,取值可以是 vertical、horizontal 或 none。

陈志宝‑天津|Android&Java 全栈开发工程师 1439
上一篇: 关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错
下一篇: Eclipse安装adt插件后之后看不到andorid manger
Timesongs
博客等级 码龄14年 15粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值