最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
从findViewById到ViewBinding的演进
时间:2026-06-02 13:40:01 编辑:袖梨 来源:一聚教程网
Android开发中,传统findViewById方式存在诸多弊端,ViewBinding技术为视图绑定提供了更高效的解决方案。
findViewById → ViewBinding
老写法(Java)
public class MainActivity extends AppCompatActivity { private TextView tvTitle;
private Button btnSubmit;
private RecyclerView rvList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tvTitle = findViewById(R.id.tv_title);
btnSubmit = findViewById(R.id.btn_submit);
rvList = findViewById(R.id.rv_list); tvTitle.setText("Hello");
btnSubmit.setOnClickListener(v -> {
// do something
});
}
}
问题在哪里
findViewById存在三个主要缺陷:

- 每个View都需要单独声明和绑定,复杂页面会产生大量样板代码
- ID拼写错误不会在编译时发现,导致运行时崩溃
- 类型转换错误仅在运行时抛出ClassCastException
新写法(Kotlin + ViewBinding)
class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) binding.tvTitle.text = "Hello"
binding.btnSubmit.setOnClickListener {
// do something
}
}
}
在build.gradle中添加配置:
android {
buildFeatures {
viewBinding = true
}
}
使用ViewBinding的优势:
- 自动生成视图绑定代码,无需手动编写
- 编译时检查ID正确性,避免运行时错误
- 类型安全,无需强制类型转换
一句话注意
ViewBinding自动将布局文件名转换为驼峰命名的绑定类,如activity_main.xml生成ActivityMainBinding。布局变更后绑定类会自动更新,无需手动维护。
在多模块项目中,每个模块都需要单独启用viewBinding功能。
本文介绍了从findViewById到ViewBinding的技术升级,显著提升了Android开发的效率和安全性。
相关文章
- 《方块方舟》儿童节版本惊喜上线:经典节日玩法限时返场 06-02
- 如何在网页版登录谷歌邮箱账号 06-02
- 字节跳动开源8B参数时序对话模型ChatTS-8B 06-02
- 空洞骑士丝之歌开荒必备道具推荐 06-02
- 排兵布阵游戏官网下载入口:最新官方正版安装地址获取 06-02
- 字节跳动开源多模态模型Vidi1.5-9B,支持视频与音频理解 06-02