如何使用ViewBinding,引用来自“其他”布局XML的视图ID,我现在有一个Naviactivity2和mainactivity,viewbinding只能搜到Mainactivity的控件,对于另外一个UI活动和其他片段的XML控件都识别不了,我应该怎么做
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
在使用ViewBinding时,通过使用`bind()`方法绑定布局文件来访问视图ID,但是通常情况下只能访问布局文件对应的视图ID。如果想要引用其他布局文件的视图ID,可以使用静态方法`inflate()`来加载对应的布局文件,然后通过`root`属性来获取布局文件的根视图,进而访问其中的视图ID。 例如,在`Naviactivity2`中,我们可以先加载其他布局文件`other_layout.xml`,然后通过`root`属性来访问其中的视图ID:OtherLayoutBinding binding = OtherLayoutBinding.inflate(getLayoutInflater()); View view = binding.getRoot(); // 访问其他布局文件中的视图ID TextView textView = view.findViewById(R.id.other_textView);
这样就可以在
Naviactivity2
中访问其他布局文件中的视图ID了。 需要注意的是,由于ViewBinding是在编译时生成的类,所以确保其他布局文件的布局文件名称与生成的类名保持一致,例如other_layout.xml
对应的生成类为OtherLayoutBinding
。 另外,在访问其他布局文件的视图ID时,可以提前将其他布局文件的根视图加载到内存中,以提高访问效率。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 如何解除Uniaccess管控
- ¥15 微信小程序跳转关联公众号
- ¥15 Java AES 算法 加密采用24位向量报错如何处理?
- ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
- ¥45 字符串操作——数组越界问题
- ¥15 Loss下降到0.08时不在下降调整学习率也没用
- ¥15 QT+FFmpeg使用GPU加速解码
- ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
- ¥15 来个会搭建付费网站的有偿
- ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏