使用视图绑定 View Binding 替代 findViewById

文章目录

    使用场景,例如,点击按钮获取输入框的内容。就需要写一堆 findViewById 的代码。

    Android Studio 3.6 之后,可以使用 View Binding 来简化这个操作。

    而且在绝大部分场景下,view binding 可以替代 findViewById。

    修改 build.gradle 启用 view binding

    编辑 Module build.gradle 的 android section, 添加

    buildFeatures {
    	viewBinding = true
    }
    

    然后,点击编辑区域顶部的 Sync Now 来更新 gradle 配置。

    这样就可以在 activity / fragment 中使用 view binding 的方式来获取 layout 中的组件了。

    如何获知生成的 Binding 类名字

    我发现 Sync 之后,项目中通过 git 并没有发现生成了任何代码,所以也就不知道去哪里获取相应的 Binding 类名称。

    可以通过 import 的自动提示来获取。

    例如,需要在一个 fragment 中添加:

    import com.sunzhongwei.todo.databinding. 等待提示:

    Android Studio Binding 提示

    就可以看到需要添加的 binding 类名称了。

    DSL element ‘android.viewBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.viewBinding’.

    Module build.gradle 的 android section 中进行编辑。

    旧的写法:

    viewBinding {
        enabled = true
    }
    

    需要替换为新的写法:

    buildFeatures {
    	viewBinding = true
    }
    

    具体添加方法参考

    https://developer.android.com/topic/libraries/view-binding

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式