【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)

简介: 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)

IV . 视图绑定 ( ViewBinding ) 关联 Activity 界面


1 . 两种获取组件方式 : 上面的示例代码中 , 分别使用 findViewById(R.id.text_view) 获取的组件 和 ActivityMainBinding 获取组件 ; 但是使用 ActivityMainBinding 获取组件无法修改界面 ;



2 . ActivityMainBinding 获取的组件无法控制界面 , 这是因为该 ActivityMainBinding 视图绑定类 , 并没有与 Activity 关联 ;



3 . 界面布局分析 : 设置界面布局的代码是 setContentView(R.layout.activity_main) , 此处将 activity_main.xml 布局设置给了 Activity 显示 , 该布局的视图组件与 ActivityMainBinding 没有任何关联 , Activity 显示的组件也不是 ActivityMainBinding 绑定类中的组件 , 因此操作视图绑定类中的组件不能修改 Activity 界面的显示 ;



4 . 如果要显示需要将 ActivityMainBinding 根视图设置给 Activity 显示 , 进行如下操作 ;


/*
    获取 视图绑定 对象
    生成绑定类 : 需要传递 LayoutInflater 参数 ,
        可以直接调用 Activity 的 getLayoutInflater() 方法获取
 */
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
/*
    ActivityMainBinding 绑定类自带 getRoot() 方法
        可以直接获取到 布局文件的 根视图
    这里可以直接将根视图传递给 setContentView 函数作为参数 , 即可在该 Activity 中显示该布局
 */
setContentView(binding.getRoot());



5 . 关联界面操作 : setContentView(binding.getRoot()) 操作就是将视图绑定类与 Activity 界面关联了起来 , 此时操作视图绑定类就可以修改界面内容了 ;




V . 视图绑定 ( ViewBinding ) 本质分析


视图绑定 ( ViewBinding ) 其本质就是提供了一种加载布局文件的便捷方式 , 与下面的操作本质是类似的 , 只是可以省略很多代码 ;



① 布局加载操作 :


//加载布局文件
View view = LayoutInflater.from(context)
    .inflate(R.layout.activity_main, parent, false);
//查找布局文件中的组件
TextView textView = view.findViewById(R.id.text_view);



② 视图绑定操作 :


ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
TextView textView = binding.textView;




VI . GitHub 代码地址


GitHub 代码地址 : https://github.com/han1202012/002_JetPack_ViewBinding_Apply


目录
相关文章
|
1天前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
23小时前
|
JavaScript 前端开发 Android开发
让Vite+Vue3项目在Android端离线打开(不需要起服务)
让Vite+Vue3项目在Android端离线打开(不需要起服务)
|
4天前
|
Java 开发工具 Android开发
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的浩瀚宇宙中,安卓和iOS两大星系璀璨夺目,各自拥有独特的光芒。本文将穿梭于这两个平台之间,探讨它们在开发环境、用户群体、成本效益等方面的差异,以及这些差异如何影响一个项目的航向和终点。我们将从初学者的视角出发,逐步深入,揭示选择合适平台的重要性,以及如何根据项目需求做出明智的选择。无论你是即将启航的新手开发者,还是已经在这片星海中航行的老手,这篇文章都将为你提供有价值的导航信息。
15 2
|
9天前
|
Java 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着重要的位置。本文旨在深入探讨这两个平台在开发过程中的主要差异,包括编程语言、开发工具、用户界面设计、性能优化以及市场分布等方面。通过对比分析,我们将揭示平台选择如何影响项目规划、执行效率和最终成果,为开发者在选择适合自己项目需求的平台时提供参考依据。
|
8天前
|
存储 Android开发 开发者
探索安卓开发之旅:从新手到专家的必经之路
【9月更文挑战第3天】在这篇文章中,我们将踏上一场激动人心的旅程,深入探索安卓开发的广阔天地。无论你是初涉编程世界的新手,还是期望提升技能的开发者,这里都有你需要的知识与技巧。我们将从基础概念讲起,逐步引导你了解安卓应用的核心组件,并分享实用的开发建议。准备好了吗?让我们一起开启这段成长之旅吧!
|
开发工具 Android开发 图形学
Android Studio安装、配置教程全 - 安卓开发环境的配置手册
Android Studio的安装、配置 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)...
1962 0
|
2天前
|
安全 Android开发 开发者
探索安卓开发的未来:Kotlin的崛起与Flutter的挑战
在移动开发的广阔天地中,安卓平台始终占据着举足轻重的地位。随着技术的不断进步和开发者需求的多样化,Kotlin和Flutter成为了改变游戏规则的新玩家。本文将深入探讨Kotlin如何以其现代化的特性赢得开发者的青睐,以及Flutter凭借跨平台的能力如何挑战传统的安卓开发模式。通过实际案例分析,我们将揭示这两种技术如何塑造未来的安卓应用开发。
17 6
|
2天前
|
人工智能 Android开发 iOS开发
安卓与iOS开发:平台选择的艺术
在移动应用开发的广阔天地里,安卓和iOS两大操作系统各占半壁江山。本文将深入探讨这两个平台的开发环境、工具及市场趋势,帮助开发者在选择适合自己项目的平台时做出更明智的决策。通过比较各自的优势与局限,我们不仅能更好地理解每个系统的核心特性,还能洞察未来技术发展的脉络。无论你是刚入行的新手还是资深开发者,这篇文章都将为你提供有价值的参考和启示。
14 5
|
2天前
|
开发工具 Android开发 iOS开发
安卓与iOS开发:一场操作系统的较量
在数字时代的浪潮中,安卓和iOS这两大操作系统如同海上的两艘巨轮,各自承载着不同的使命与梦想。本文将深入浅出地探讨这两个系统在开发领域的异同,从用户体验、开发工具、市场趋势等多个维度进行比较分析。通过这场技术的较量,我们可以更好地理解每个系统的优势与局限,以及它们如何影响我们的日常生活和工作。
|
3天前
|
移动开发 开发工具 Android开发
安卓与iOS开发:平台差异及其对开发者的影响
在移动开发的大潮中,安卓和iOS两大阵营各领风骚。本文将探讨这两个平台的关键差异,包括开发环境、编程语言、用户界面设计、应用分发以及商业模式等方面。通过比较分析,我们旨在为开发者提供一个清晰的指导,帮助他们根据项目需求和个人偏好做出明智的平台选择。同时,文章也将分享一些跨平台开发工具的使用经验,以期最大化开发效率和市场覆盖。