Android中查找一个Layout中指定的子控件
我们通常希望查找一个页面中指定类型的控件,单个控件知道id很容易找到,但是如果是多个呢?或者说是在程序中自定义的控件,且不知道id怎么办呢?如想找到页面中的Spinner,可用以下方法
/**
	 * 从当前页面中查找所有的Spinner控件
	 * @param group
	 * @return
	 */
	private Spinner findSpinner(ViewGroup group) {
		if (group != null) {
			for (int i = 0, j = group.getChildCount(); i < j; i++) {
				View child = group.getChildAt(i);
				if (child instanceof Spinner) {
					return (Spinner) child;
				} else if (child instanceof ViewGroup) {
					Spinner result = findSpinner((ViewGroup) child);
					if (result != null)
						return result;
				}
}
		}
		return null;
	}
调用方法:findSpinner((ViewGroup) this.getWindow().getDecorView());
使用改方法可以重置所有的Spinner,而不需要一个个去重置,代码如下:
/**
	 * 重置所有的Spinner控件
	 * @param group
	 * @return
	 */
	private void resetSpinnerSelectItem(ViewGroup group) {
		if (group != null) {
			for (int i = 0, j = group.getChildCount(); i < j; i++) {
				View child = group.getChildAt(i);
				if (child instanceof Spinner) {
					((Spinner) child).setSelection(0);
				} else if (child instanceof ViewGroup) {
					resetSpinnerSelectItem((ViewGroup) child);
				}
			}
		}
	}
Android中查找一个Layout中指定的子控件的更多相关文章
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法
		fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ... 
- 在eclipse中查找一个类中的方法在其他哪个类中被调用了
		选中你所要查看的方法名,ctrl+shift+G就可以查看所有调用过该方法的地方了.在Search视图里面可以查看得到这个样子是可以的,你也可以按Ctrl+H全文检索一下 
- 解决ListView中Item的子控件与Item点击事件冲突
		常常会碰到在ListView中点击当中一个Item.会一并触发其子控件的点击事件.比如Item中的Button.ImageButton等.导致了点击Item中Button以外区域也会触发Button点 ... 
- 如何查找一个目录中所有c文件的总行数
		如何查找一个目录中所有c文件的行数 面试题问到了一题,如何统计wc文件夹下所有文件的行数,包括了子目录. 最后在 https://blog.csdn.net/a_ran/article/details ... 
- Linq 中查询一个表中指定的字段
		//Linq中查询一个表中指定的几个字段: ); // FindAllItems()为查询对应表的所有数据的方法: // Where 里面为查询条件 // Select 为查询的筛选条件 new{} ... 
- Java-J2SE学习笔记-查找一个String中,subString的出现次数
		1.查找一个String中,subString的出现次数 2.代码 package Test; public class TestStringContain { public static void ... 
- hash数组快速查找一个字符串中出现最多的字符,并统计出现的次数
		如何快速查找一个字符串中出现最多的字符,并统计出现的次数? 可以使用hash数组,也就是关联数组实现快速查找功能. function seek(str) { var hash = []; var ma ... 
- 【Python实践-5】使用迭代查找一个list中最小和最大值
		# -*- coding: utf-8 -*- #使用迭代查找一个list中最小和最大值,并返回一个tuple #遍历list,找到最小值 def findMinAndMax(L): if L==[] ... 
- 请使用迭代查找一个list中最小和最大值,并返回一个tuple
		如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for ... in来完成的,而很多语 ... 
随机推荐
- 巧用在线html编辑器,保存文章到数据库(带html标签)
			1.对于读取数据库的文章字段刷新到web页面,如何使文章格式很好的显示出来,那么数据库应存text格式,并记录文章的个数(转换为html): 2.如何转换html格式,可以使文章从word直接粘贴到在 ... 
- [轉]redis;mongodb;memcache三者的性能比較
			先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一 ... 
- AsyncTask实现多线程断点续传
			前面一篇博客<AsyncTask实现断点续传>讲解了如何实现单线程下的断点续传,也就是一个文件只有一个线程进行下载. 对于大文件而言,使用多线程下载就会比单线程下载要快一些.多线程下载 ... 
- Ios开发之定位CLLocationManager
			Ios中的定位功能是通过 Core Location框架实现的.它和地图开发框架是相互独立的.在Core Location中主要实现了定位和地理编码的功能! 下面我们就来介绍一下它的属性,方法和代理方 ... 
- mysql性能瓶颈分析、性能指标、指标搜集方法与性能分析调优工具
			本文主要讲解mysql的性能瓶颈分析.性能指标.性能指标信息的搜集工具与方法.分析调优工具的使用. 文章尚未完成. 性能瓶颈: 慢.写速度比读速度慢很多 主要的性能指标: 访问频度, 并发连接量, ... 
- TCP/IP 网络编程 (三)
			server端未处理高并发请求通常採用例如以下方式: 多进程:通过创建多个进程提供服务 多路复用:通过捆绑并统一管理 I/O 对象提供服务 多线程:通过生成和客户端等量的线程提供服务 多进程serve ... 
- X下轻量级桌面WindowMaker上手指南
			layout: post title: 轻量级桌面WindowMaker上手指南 tags: x11, cygwin, raspi --- 最近工作上需要在远程Linux上运行一个桌面(我需要跑Net ... 
- spring中@param和mybatis中@param使用差别
			spring中@param /** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return */ int selectRoleCount ... 
- Mac mongodb 配置安装
			简单总结就几条,比较简单配置mongodb. 1,首先下载安装包:百度云下载地址 2,下载之后解压到自己常放的工作目录下,然后开始配置一下你的Mac环境 vim ~/.bash_profile 添加m ... 
- FFrpc python客户端lib
			摘要: Ffrpc可以很方便的构建c++ server, 在网游服务器程序开发中,进程间通讯非常的重要,比如gateserver和gameserver或dbserver之间的通信.而ffrpc可以使得 ... 
