ButterKnife框架的使用
来源:互联网 发布:数据分析师好考吗 编辑:程序博客网 时间:2024/05/17 23:45
一、ButterKnife框架集成步骤:1、AS添加依赖及配置信息:buildscript {repositories {jcenter()}dependencies {//butterknife依赖注入框架配置classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'}}//////////////////////////////////////////////////////////////////////////////////apply plugin: 'android-apt'//butterknife注入依赖设置dependencies { ///ButterKnife依赖compile 'com.jakewharton:butterknife:8.8.1'compile 'com.jakewharton:butterknife-compiler:8.8.1'}2、使用步骤:在Activity中:public class DemoActivity extends FragmentActivity {@BindView(R.id.textview_test)TextView textview_test;private Unbinder mUnbinder;//ButterKnife 的绑定设置对象。@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_demo); mUnbinder = ButterKnife.bind(this);//ButterKnife 的绑定设置。textview_test.setText("... ...");......}@Overrideprotected void onDestroy() {mUnbinder.unbind();//ButterKnife 的解除绑定设置。}//点击事件的处理@OnClick({R.id.textview_test})public void onViewClicked(View view) {switch (view.getId()) {case R.id.textview_test:MLog.e("返回");break;}}}在Fragment中:public class DemoFragment extends Fragment{private Unbinder unbinder;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragmnet_demo, null);//注意这里的this不是getActivity()unbinder = ButterKnife.bind(this, view);return view;}@Overridepublic void onDestroyView() {super.onDestroyView();unbinder.unbind();//解除ButterKnife绑定。}}在Adapter中:public class DemoAdapter extends BaseAdapter { @Override public View getView(int position, View contentView, ViewGroup parent) { ViewHolder viewHolder; if(contentView == null){contentView = LayoutInflater.from(mContext).inflate(R.layout.item_layout,null);viewHolder = new ViewHolder(contentView);}else{viewHolder = (ViewHolder)contentView.getTag();}viewHolder.titleItemLayoutTitle.setText("demo");... ...return view; } static class ViewHolder { @BindView(R.id.textview_item_layout_title) TextView titleItemLayoutTitle; public ViewHolder(View view) { ButterKnife.bind(this, view); } } } 3、使用ButterKnife遇到的坑:空指针异常刚刚开始用ButterKnife不注意的话,一般都会遇到空指针异常的问题,其原因就是初始化布局文件和初始化绑定ButterKnife的顺序颠倒了,或者在绑定ButterKnife之前使用控件。就像之前用findViewById()方法放到了setContentView(R.layout.activity_base)之前是一样的道理,这样肯定是找不到控件的,所以报空指针异常。;一般开发中Activity都会做分层处理,会提取一个BaseActivity。在BaseActivity设置ButterKnife的绑定,一定要在子Activity布局加载之后进行绑定。不然就会出现控制针异常。
阅读全文
0 0
- butterknife框架的使用
- ButterKnife框架的使用
- Android ButterKnife框架的使用
- ButterKnife 注解框架的使用
- 懒人框架“ButterKnife”的使用
- 38.ButterKnife注解框架的使用
- ButterKnife 8.4 注解框架的使用
- 【Android - 框架】之ButterKnife的使用
- 注解框架ButterKnife的使用方式
- 开源框架----ButterKnife的使用
- Android注解框架(ButterKnife的简单使用)
- Android框架之Butterknife的使用
- ButterKnife 框架的使用(一)
- Android Butterknife 注解框架的使用
- 软件框架之ButterKnife的使用
- 注解式框架--Butterknife的使用
- android butterknife框架的简单使用
- ButterKnife注解框架使用
- 属性动画(Property Animation)
- centos7重启network失败问题
- 程序员10大基础实用算法
- ThreadPoolTaskExecutor配置详解
- 向数据库插入数据时出现乱码 --设置连接数据库的编码
- ButterKnife框架的使用
- redis windows 服务 启动脚本
- 手机看片都被围观?谈谈那些触目惊心的“后门”
- 想做电影达人? 这款小程序帮你逼格提升N级
- 我的第一篇博客
- 使用sublime编辑器运行python程序的方法
- Delphi-数学运算函数与过程
- C# WinForm开发中LinkLabel的使用
- 花大价钱买十五年前的交换机架构的“分布式KVM坐席/数字KVM坐席”???