智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述《Android进阶之光》--ButterKnife相关的知识,希望能为你提供帮助。
No1:
添加依赖库
Project的build.gradle文件添加
buildscript{ ... dependencies{ ... classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8‘ } }
在Module:app的build.gradle文件添加
apply plugin:‘com.neenbedankt.android-apt‘ ... dependencies{ ... compile ‘com.jakewharton:butterknife:8.4.0‘ apt ‘com.jakewharton:butterknife-compiler:8.4.0‘ }
No2:
绑定控件id
@BindView(R.id.tv_text) TextView tv_text;
No3:
绑定资源
@BindString(R.string.app_name) String appName; @BindArray(R.array.swordsman) String[] swordsman; @BindDimen(R.dimen.activity_horizontal_margin) float margin;
No4:
绑定监听
@OnClick(R.id.bt_button1) public void showToast(){ }@OnLongClick(R.id.bt_button2) public boolean setText(Button button){ return true; }
@OnTextChanged(value=https://www.songbingjia.com/android/R.id.et_edittext,callback=OnTextChanged.Callback.BEFORE_TEXT_CHANGED) void beforeTextChanged(CharSequence s,int start,int count,int after){ }@OnTextChanged(value=R.id.et_edittext,callback=OnTextChanged.Callback.TEXT_CHANGED) void onTextChanged(CharSequence s,int start,int before,int count){ }@OnTextChanged(value=R.id.et_edittext,callback=OnTextChanged.Callback.AFTER_TEXT_CHANGED) void afterTextChanged(Editable s){ }
@OnTouch(R.id.bt_button3) public boolean onTouch(View view,MotionEvent event){ return true; }@OnItemClick(R.id.lv_list) void onItemClick(int position){ }
No5:
可选绑定
@Nullable @BindView(R.id.tv_toptext) TextView name;
No6:
ButterKnife注解处理器是ButterKnifeProcessor,主要处理逻辑都在process方法中
-> findAndParseTargets
【《Android进阶之光》--ButterKnife】-> brewjava
-> createBinding
-> findBindingConstructorForClass
-> findRequiredViewAsType
-> findRequiredView
-> DecorView.findViewById
-> castView
推荐阅读
- 关于基于Linphone的视频通话Android端开发过程中遇到的问题
- Android集成百度地图详细步骤和错误问题
- android android.mk中:= ?= +=之间的区别
- elasticsearch入门使用 Mapping + field type字段类型
- 在C#的控制台应用中使用Dapper链接MySQL并执行一些增删改查
- Android面试收集录 2D绘图与动画技术
- vector android:fillType gradient android:endX attribute not found
- [Android Pro]深入理解函数的调用过程——栈帧
- android 自定义Button,抛弃写shape文件