Android开发面试题之遍历ViewGroup拿到所有的ViewGroup和View的id
面试题如题:
咱们老套路先上图:下面是我通过遍历拿到的所有的id,怎么做的呢?
咱们先说下思路:
首先拿到最外层的ViewGroup然后通过它拿到它所有的child然后循环每个child判断是ViewGroup还是View,如果是ViewGroup就继续遍历(递归),不是VieGroup的话那就是View了,那就直接打印View的id即可。
看代码吧。
//遍历树形结构viewViewGroup llRoot = findViewById(R.id.ll_root);forData(llRoot);/*** 遍历ViewGroup的方法** @param llRoot 根VieGroup*/private void forData(ViewGroup llRoot) {int childCount = llRoot.getChildCount();for (int i = 0; i < childCount; i++) {if (llRoot.getChildAt(i) instanceof ViewGroup) {Log.e("打印ViewGroup的id", llRoot.getChildAt(i).getId() + "=");forData((ViewGroup) llRoot.getChildAt(i));} else {Log.e("打印View的id", llRoot.getChildAt(i).getId() + "=");}}}
咱们再看下xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/ll_root"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><EditTextandroid:id="@+id/et_input"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:inputType="text"android:text="408" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="showResult"android:text="通过MVP模式显示结果" /><LinearLayoutandroid:id="@+id/ll_two"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:id="@+id/tw_three"android:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/tv_one"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/tv_two"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout><TextViewandroid:id="@+id/tv_three"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout><ScrollViewandroid:id="@+id/sv_four"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv_shoe_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="@android:color/black" /></ScrollView></LinearLayout>
懂了吧。
Android开发面试题之遍历ViewGroup拿到所有的ViewGroup和View的id相关推荐
- android开发面试题!微信小程序趋势及前景,社招面试心得
没有稳定的工作,只有稳定的能力. 又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的,在经历了八年的脱发生涯后,有了越来越多的想法和感触 趋势 随着各类移动跨平台的兴起,在 R ...
- 71道Android开发面试题
注:本文来自"安卓巴士" Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程 ...
- Android开发面试题 71道经典题目
注:本文来自"安卓巴士" Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程 ...
- 百度Android开发面试题
此文转载,希望朋友有好的面试题 发来研究一下-- 1. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每一个Android应用程序都在 ...
- 优秀Android程序员必知必会的网络基础,Android开发面试题及答案
前言 大家应该看过不少人分享的面试成功的面经,是不是觉得自己"说不定也可以"呢? 这里重提一个理论:幸存者偏差.当取得资讯的渠道,仅来自于幸存者时(因为死人不会说话),此资讯可能会 ...
- android开发面试题!360°深入了解Flutter,面试总结
何为成长?成长是指自我提升,一方面是本身的个人能力,另一方面是社会对你的认可度.最终,程序员的职位和薪水都能在成长中得以体现. 很多人对成长有误解,在他们眼中,随着工作年限的提高,成长是理所当然的事情 ...
- android开发面试题
找了将近两个星期的工作,面试了5家公司,罗列一下笔试或者面试时的问题,祝大家好运 1,handler机制 答:handler运行机制:1),在主线程中创建handler 2),子线程中借助主线程的ha ...
- 携程android开发面试题,2017携程笔试题目
携程是我国著名的旅游为主的网站,想进入携程工作吗?小编为大家整理了2017携程笔试题目,欢迎阅读参考! 2017携程Web前端实习生招聘笔试题 考察encodeURI encodeURI(), dec ...
- Android开发面试题之求一个数的N次幂手写算法
实际上很多人第一反应就是循环,但是不用循环呢?这里我这边想到了递归的方法,分别为Java版本和Kotlin版本的代码: Java版本: /*** 思路:利用递归实现* Java 版本:计算一个数的n次 ...
最新文章
- OPENGL ES 对象的拾取
- 查看PID 进程是否存在的一个小技巧
- 推荐系统个人理解(理论部分)
- Win32 像素格式描述符学习
- c#如何跳出一个函数_C#初学者教程系列9:类和对象
- 使用Kubernetes容器服务在云上搭建AI推理环境
- python2与python3,Python2和Python3的10大区别
- OPPO Reno3系列旗舰官宣:骁龙765G+正反双曲面设计
- 来学习一下概率论基本知识,它能让防止你的模型过拟合
- 创建Maven分布式前台系统架构,写出京动态导航,跨域返Json数据
- vmlinuz的产生
- activiti6监听器使用
- python在线编辑器编译excel_如何利用ONLYOFFICE将在线文档编辑器集成到Python Web应用程序中?...
- 万兆铜缆--七类双绞线--光纤等内容
- AAAI 2020对抗样本论文
- 修复 Apple “连续互通” 方法汇总:修复 AirDrop(隔空投送),修复 Apple Watch 解锁 Mac,修复 HandOff(接力)等
- 大数据在城市规划领域的应用思考
- Linux应用(二)多进程编程
- 微信小程序 - 分享商品海报
- 中e管家投资理财做好这六件事
热门文章
- java bitset 扩展_将java BitSet保存到DB
- java进阶 2018_Java Web基础入门2018版
- python的类作用_python——类中的self到底的作用及三个应用场景
- 【原】postman常用设置全局变量的js片段
- WUSTOJ 1282: Start(Java)
- ROS-URDF仿真
- VS2010/MFC编程入门之二十(常用控件:静态文本框)
- map和list遍历基础
- css--左右visibility建立 “collapse”值问题
- Win7下提取加密PDF文件(pdf加密成exe)