网站导航是怎么做的,如何制作公司网站和网页,攀枝花城市建设网站,怎么查网站空间在哪里好多小伙伴现在还用findViewById来获取控件的id, 在这里提供俩种替代方案#xff1a;ViewBinding与ButterKnife#xff1b; 先来说说ButterKnife
ButterKnife
ButterKnife是一个专注于Android系统的View注入框架#xff0c;在过去的项目中总是需要很多的findViewById来查…好多小伙伴现在还用findViewById来获取控件的id, 在这里提供俩种替代方案ViewBinding与ButterKnife 先来说说ButterKnife
ButterKnife
ButterKnife是一个专注于Android系统的View注入框架在过去的项目中总是需要很多的findViewById来查找View对象有了ButterKnife可以轻松省去这些步骤。目前使用较为广泛最重要的一点使用ButterKnife对性能基本不造成损失因为ButterKnife用的是注解而不是运行时的反射所以最终在编译时生成了新的class文件项目集成非常方便用起来相对简单 1使用View中的控件代码简化 2程序性能不受损失特点 1使用BindView绑定View 2支持多个View同时绑定可以设置相关的动作 3使用类似OnClick设置监听器 4可以绑定资源如何使用 1添加依赖 2检查依赖添加是否成功 3绑定 【案例】 build.gradle(project): 依赖 classpath ‘com.jakewharton:butterknife-gradle-plugin:10.2.3’ build.gradle(module): 依赖 implementation ‘com.jakewharton:butterknife:10.2.3’ annotationProcessor ‘com.jakewharton:butterknife-compiler:10.2.3’ MainActivity.java 2.ButterKnife是如何实现性能不损失的绑定
控件是如何实例化 使用ButterKnife自动生成了findViewById相关代码而不是使用反射所以性能没有损失。
3.资源的绑定
android中哪些属于资源 图片、布局、字符串、数组、样式、主题等。 使用ButterKnife的注解可以对资源进行绑定 BindBool 绑定逻辑值 BindColor 绑定颜色值 BindDimen 绑定一个尺寸 BindDrawable 绑定一个图片 BindInt 绑定一个整数 BindString 绑定一个字符串【案例】绑定一个图片到ImageView上 MainActivity2.java【案例】绑定字符串 strings.xml MainActivity2.java
4.非Activity中的绑定
子控件、Fragment、ListView、RecyclerView等等。这些控件都与View相关加载布局时含有其他控件如何绑定【案例】Activity中加载一个FragmentFragment中加载一个布局布局中有2个按钮如何对这两个按钮进行绑定 fragment_my.xml activity_main3.xml MyFragment.java【案例】在RecyclerView中实现绑定 绑定写在哪里 需要创建Holder、Adapter、RecyclerView、主布局、条目布局。 主布局的绑定写入到Activity中即可。条目布局中的控件写在哪里进行绑定 要求 给定100个序号以列表的形式展示100个序号。序号使用TextView显示。如何实现绑定 item.xml MyHolder.java MyAdapter.java MainActivity4.java
【拓展】如果每个按钮既有公共的逻辑又有独特的逻辑怎么办 1识别共同逻辑和独有逻辑 2共同逻辑放在公共代码区域 3要想执行部分由具体的实例来决定就需要在实例部分传入具体的实现。 3.1所以需要定义接口接口约定方法签名即可。 3.2要添加接口方法在什么地方调用。 3.3接口实现需要在执行接口前传入。需要声明一个接口变量用来接收外界传入接口的实现类的实例。 3.4外界实现这个接口并传入。 4当用户点击按钮时就执行已经传入后的接口实现方法。 【项目结构】 MyButton.java MainActivity.java
续跟1.绑定一组View
例如多个TextView一起绑定到一个List集合集合是一个android资源。 使用注解BindViews({x,y,z})【案例】 activity_main.xml MainActivity.java
2.绑定监听器
事件有哪些 clickListener、SelectedItemListener等 监听器的绑定注解 OnClick(R.id.btn1) public void click(View v){ }//此方法为事件发生时绑定到btn1上 【案例】 activity_main2.xml MainActivity2.java