(转)[Android]Kotlin之Fragment中直接引用视图控件id

转自:https://blog.youkuaiyun.com/wxx_csdn/article/details/78261903

 

我看到网上有部分开发者写的关于这个问题的解决办法,但有误解,并不是他们所说的不适用,而是用法不对

部分开发者博客这么写到  获取kotlin的控件,只要在代码中输入对应的Id就行了。但是,对于fragment确并不适用 

这句话其它是不对的,要想直接使用控件id需要符合前置条件,就是对应的layout文件加载完毕后才可以直接使用控件id来操作,如果你在onCreateView()方法中去直接使用控件id去操作,肯定是空指针异常,因为return view还没有执行呢。

在确保onCreateView()方法执行完毕后,就可以直接使用控件id来操作。

 

那么我们只要在onViewCreated()方法中去使用id操作就没问题,因为该方法执行时,说明onCreateView已经执行完了,View已经创建完毕了。

 

1、这是创建view

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {  
            val view = View.inflate(mContext, R.layout.layout_home, null)  
            return view  
        }  

 R.layout.layout_home 中的一个TextView

<TextView  
            android:id="@+id/tvName_Home"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content" />

 2、View创建完成后就可以直接使用控件id来操作

    override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {  
            super.onViewCreated(view, savedInstanceState)  
            tvName_Home.text = "小明"  
        }  

  

Kotlin在Android中实现Fragment与TabLayout绑定的实战指南 虽然TabLayout已经提供了基本的标签功能,但在实际应用中,我们可能需要对标签进行个性化定制。例如,可以自定义标签的样式或在标签中添加图标:-- 更多的TabItem -->在代码中,可以使用和方法来控制标签的选择状态,从而实现更丰富的交互效果。Kotlin是一种运行在Java虚拟机上的静态类型编程语言,它由JetBrains公司开发,并在2016年成为官方Android开发语言。Kotlin以其简洁、安全、功能强大和互操作性特点而受到开发者的青睐。 阅读详情

相关推荐

Kotlin如何直接使用控件ID原理详析

主要给大家介绍了关于Kotlin如何直接使用控件ID原理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Kotlin之Fragment中直接引用视图控件id

我看到网上有部分开发者写的关于这个问题的解决办法,但有误解,并不是他们所说的不适用,而是用法不对 部分开发者博客这么写到  获取kotlin的控件,只要在代码中输入对应的Id就行了。但是,对于fragment确并不适用  这句话其它是不对的,要想直接使用控件id需要符合前置条件,就是对应的layout文件加载完毕后才可以直接使用控件id来操作,如果你在onCreateView()方法中

wxx的记录窝 7001

Mixer-First Receiver适用于宽带阵列应用的接收机技术1

Mixer-First Receiver适用于宽带阵列应用的接收机技术1技术的背景单元级数字化阵列传统链路到Mixer-First链路的逻辑考虑三种场景小结 技术的背景 在文章《吊打全球的顶级毫米波数字阵列项目-MIDAS》中提到了DARPA在MIDAS项目中在毫米波实现宽带单元级数字化阵列用到了一个关键的叫做N-Path filter的技术,而这个技术同样出现在了《让微波射频工程师颤抖的芯片-MATRICs》的MATRICs芯片中。 为什么DARPA的各个合作研究机构选择这种技术?这篇来自Universi

ICONO的博客 2167

kotlin在fragment中不能像activity中直接通过id调用控件的解决方法

不能直接用id的原因,是因为你的xml没有载入,会导致使用id的时候会报空指针,如果需要使用,在onCreateView return view后,在onViewCreate函数中使用Id直接调用,onViewCreate会在onCreateView后执行

villa_mou的博客 2768

基于AXI PCIE IP的FPGA PCIE卡示意图

如果在上图中的AXI互联IP上再连接一个带AXI Slave接口的BRAM控制器,这个BRAM控制器连接一个BRAM,Host PC在系统主存中分配了一些不连续的内存,Host PC可以将这些内存段的起始地址(当然要先转为PCIE总线地址)写到AXI总线上的BRAM中,这样AXI CDMA读取BRAM,将读取到的PCIE总线基地址写到AXIPCIE寄存器块中的AXIBAR2PCIEBAR_n寄存器中,这样就实现了SG DMA。通过动态改变AXIBAR2PCIEBAR_n寄存器的值,可以实现多通道DMA。

csdn_gddf102384398的博客 1624

Libero SoC v2021.1离线安装与IP核配置全攻略

本文详细介绍了Libero SoC v2021.1在离线环境下的完整安装与配置流程。核心内容包括如何选择正确的离线安装包、获取并配置许可证、安装与挂载MegaVault IP库,以及将ModelSim仿真器切换至免费SE模式的关键步骤。文章旨在帮助内网开发者避开常见陷阱,顺利完成FPGA开发环境的搭建。

weixin_29279101的博客 411

关于android使用kotlin语言实现activity加载fragment时多个fragment的跳转的一种解决方案总结

具体步骤和上面一样,只不过要把activity中的代码写到父fragment中,并且要把changePage()方法中第三行代码。其中home_center_fragment就是将要加载fragment的容器,记住后面会用到。这个枚举中主要存放将要加载的fragment类的类名及其含义。

m0_50774720的博客 1285

目标检测: 一文读懂 YOLOX

论文:YOLOX: Exceeding YOLO Series in 2021 论文链接:https://arxiv.org/pdf/2107.08430.pdf 代码链接:https://github.com/Megvii-BaseDetection/YOLOX. 文章目录1 为什么提出YOLOX2 YOLOX 网络架构3 YOLOX 实施细节3.1 backbone3.2 neck3.3 Head3.3.1 Decoupled Head3.3.2 Anchor-free3.4 如何计算Loss3.5 如

weixin_46142822的博客 3万+

Android kotlin 之 Fragment怎样直接获取控件

在onCreateView方法中你可以直接使用当前布局返回的view.id来使用控件。 override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val

黄孝果的博客 7517

SCI论文Discussion写作:如何用AI工具三步打造审稿人认可的深度逻辑框架

本文针对SCI论文Discussion写作的痛点,提出利用AI工具三步构建深度逻辑框架的方法。首先,使用Claude等工具搭建个性化提纲,解决“浅显病”与“混乱症”;其次,高效整合文献与结果,填充证据;最后,优化逻辑衔接与学术语言,打造审稿人认可的流畅论证。该方法强调研究者主导,AI辅助,显著提升写作效率与深度。

weixin_28235513的博客 236

扫地机器人行业 企业篇-产业总部地理分布

中国扫地机器人产业呈现区域集聚特征,广东省以13家企业领跑全国,其中深圳独占9家(如大疆、云鲸智能等),佛山、广州、东莞各有分布。江苏省6家企业主要集中在苏州(科沃斯、追觅科技等)。北京聚集了石头科技、小米等4家品牌。浙江、山东、湖南等地也有代表性企业分布。国际品牌方面,美国iRobot、韩国三星/LG、日本松下等均在各自国家设立总部,而戴森、飞利浦等欧洲品牌则将中国运营中心设在上海或苏州。值得注意的是,部分品牌如由利、宝家丽虽为外资起源,但主要运营实体已落户中国。

智能硬件研发,欢迎交流 363

[kotlin]今天我们来说说Fragment简单用法和搭配ViewPage用法,希望对你有帮助!

Fragment的简单使用

qq_42467528的博客 1765

AUTOSAR进阶图解==>AUTOSAR_SWS_BSWGeneral

本文详细解析AUTOSAR基础软件(BSW)模块的通用规范,涵盖其分层架构、配置管理、初始化流程和状态转换机制。AUTOSAR采用清晰的分层设计,包括应用层、服务层、ECU抽象层和微控制器抽象层,各层模块通过标准化接口交互。BSW模块配置采用类型化定义,支持预初始化、初始化和后期构建配置。文档还阐述了模块初始化流程中的依赖管理,以及运行时的状态转换与错误处理机制,为汽车电子控制单元的标准化开发提供规范指导。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 1129

kotlin,Android教你最基础的ViewBinding视图绑定

手把手教会你如何使用最基础的视图绑定ViewBinding

m0_74531507的博客 3891

《Unity DOTS之ECS从入门到不香》(1)基本概念

文章目录一、什么是DOTS?二、什么是ECS?三、Hello World 一、什么是DOTS? Data Oriented Tech Stack(DOTS)是unity推出的多线程面向数据的技术堆栈 。它是一套高性能解决方案,包含三个部分: 1.ECS:ECS是一种有别于面向对象的编程模式,是面向CPU Cache友好的编程模式。要求代码都要按照 实体+组件+系统 的框架构建。官方链接 2.JobSystem:JobSystem是unity推出的一套先进的多线程任务管理系统,结合ECS可以获得最佳性能。当然

Cxihu田树东的游戏开发博客 2732

数学建模模型总结

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

获取视图控件的方法findViewById、kotlin-android-extensions、ViewBinding

kotlin-android-extensions和ViewBinding findViewById 使用findViewById时,最终会调用ViewGroup中的findViewTraversal,这个方法会遍历所有的子View,形成一个递归查询,找到最末端(View中)。如果找到就会返回这个View并停止查询,如果没找到就会返回为null。在确定要查找的那个View在某个View中的时候,我们调用那个View.findViewById()方法,会减少查询的循环次数,提高效率。 View类似于树的叶子节

Travor Philip的blog 2604

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

kotlin-android-extensions过时了,迁移到ViewBinding

前言 回顾历史,kotlin-android-extensions插件让我们省去了很多findViewById的代码,直接使用控件id操作控件。不过在Android Studio 4.1及以上IDE新建项目的时候,默认不会引入他了,如果还在使用,会给一个警告:kotlin-android-extensions插件已被废弃,现在推荐使用ViewBinding来进行替代。 更新gradle文件 build.gradle plugins { //... // id 'kotlin-android-e

haizhuo的博客 2930

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

kotlin fragment中listview的创建

本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问 在使用listview的时候,我们必须用到adapt这个东西,adapt一般用于listview这种列表形式的类。它的作用就是用于数据和视图的适配。 首先我们创建一个样式用于显示内容 比如我创建item_study.xml 创建item样式 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.and.

小游 651

kotlin代替findViewById的方法

在安卓项目使用了Kotlin之后,发现Kotlin一个相当强大的地方,可以不用findViewById,引入布局,直接使用控件 方式一:使用kotlin插件自动生成 引入kotlin扩展插件 apply plugin: ‘kotlin-android-extensions’ 引入kotlin自动生成的相关布局文件 import kotlinx.android.synthetic...

king的专栏 6697

熬夜再战Android之修炼Kotlin-【findView】篇

????关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!! 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) 有什么需要欢迎私我,交流群让学习不再孤单。 ????前提 前面我们学了Kotlin语言,趁热打铁我们试试Kotlin在Android中的应用。 如果是新手,请先学完Android基础。 推荐先看小空之前写

空名先生 1万+

ViewBinding的使用.Android、kotlin

ViewBinding的使用 Android获取控件有很多种方法,最基础的findViewById,实用但是麻烦。使用kotlin后应该会接触到插件kotlin-android-extensions,用起来很好用,子需要输入控件id,根据代码自动补全选择相应布局文件引用就可以直接获取到控件,不过因为种种原因这个方法被google废弃掉了,感兴趣的同学可以自行百度。那么久进入今天的主角了ViewBinding,以前我就又看到过不过没有仔细了解,今天闲下来仔细学习了一下,ViewBinding优点很多,下面我们

qq_38496491的博客 966

android 简书个人主页,使用Kotlin仿的简书个人主页,只需一个控件

界面做的比较丑,但是基本上实现了功能。为了学习最近比较火的kotlin语言,就试着写了个demo。参考上篇文章仿掌上英雄联盟的效果。效果图一、开始前的准备导入kotlin开发环境:在androidStudio3.0版本默认已经集成好了。直接在创建项目的时候勾选include Kotlin support,会自动帮我们创建好kotlin语言的项目。不勾选就是java。image.png如果是手动集成...

weixin_31109967的博客 756

Kotlin Fragment 按钮跳转报错解决:Unresolved reference ‘floatingActionButton‘

在使用Kotlin开发时,为了实现从listfragment通过一个按钮跳转到addfragment时,按照教程。

qq_74424937的博客 399

android. fragment activity时 视图为空?_使用视图绑定替代 findViewById

从 Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代findViewById,从而可以帮您简化代码、移除 bug,并且从 findViewById 的模版代码中解脱出来。本文梗概在 build.gradle 中就可以方便快捷地开启视图绑定且无须额外引入依赖库视图绑定会为 Module 中的每一个布局文件生成一个绑定对象(activity_awesome.xml → A...

weixin_26804345的博客 284

Kotlin之控件初使用

一、开始前的准备导入kotlin开发环境: 在androidStudio3.0版本默认已经集成好了。直接在创建项目的时候勾选include Kotlin support,会自动帮我们创建好kotlin语言的项目。不勾选就是java。 如果是手动集成kotlin: 需要两个地方进行配置 1、根目录下的 project - build.gradlebuildscript { ext.kotl...

qq_30324295的博客 4943

Android kotlin ui框架,kotlin--快速实现App框架

前言加入Adroid开发这个阵营已经快两年了,一直使用Java开发,之前也学过Kotlin,但并没有真正运用于项目实践,Kotlin在实际使用中还是有利有弊的,习惯使用Java开发来说,Java更顺手。最近重温Kotlin,下面的Demo是利用实现App的框架,即所谓底部导航。效果图开始底部导航我们采用ViewPager+Fragment实现,具体看代码。MainActivity的布局activi...

weixin_31542739的博客 1283
上一篇: (转)[IOS]一些实用技巧的总结
下一篇: kotlin如何在Fragment中使用getFragementManager()
jameskaron
博客等级 码龄20年 31粉丝 663原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值