Android MVP+Retrofit+dagger2+RxAndroid框架整合(4)----butterknife篇

9 篇文章 0 订阅
8 篇文章 0 订阅

作者:hwj3747
转载请注明

目录

背景

在写Android项目的时候总是要写各种各样的界面,对于每一个写在XML文件上的控件,我们都要在java文件上写上与之对应的控件,比如这样:

TextView textView=(TextView)findViewById(R.id.text_view);
Button button=(Button)findViewById(R.id.button);

又或者是按钮啊,textView的点击事件,我们也要写这样的代码:

button.setOnClickListen(){...};

这样的代码,在我们设计UI的时候出现了太多,并且这是一个很繁琐的事情,于是我们就想啊,如果有一种方法能自动生成这些东西,岂不是很好?于是便有了butterknife!
###butterknife基本使用方法
首先,你需要在OnCreate初始化方法中先绑定布局文件:

@Override public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.simple_activity); 
  // 进行绑定 
  ButterKnife.bind(this); 
}

然后,原本使用findViewById这个方法的地方,使用@InjectView注解代替(注意:新版本的butterknife使用的是@BindView注解):

@InjectView(R.id.text1)TextView text1;
@InjectView(R.id.text2)TextView text2;
@InjectView(R.id.text3)TextView text3;
@InjectView(R.id.button1)Button button1;
@InjectView(R.id.button2)Button button2;
@InjectView(R.id.button3)Button button3;

在需要使用setOnClickListen点击事件的地方,用@OnClick注解代替:

@OnClick({R.id.button1, R.id.button2, R.id.button3})
public void onClick(View view) {    
switch (view.getId()) {      
    case R.id.button1:            break;    
    case R.id.button2:            break;       
    case R.id.button3:            break;   
 }}

这样就初步完成了!
###Android ButterKnife Zelezny插件
到这边可能会有人觉得这个框架也没那么方便,代码不是还得自己写吗?其实不然,Android ButterKnife Zelezny这个框架可以自动帮我们生成这些东西!
首先打开setting的plugins,选择Browse repository

5.png
然后搜索一下这个插件,安装,重启编译器即可!

6.png

###Android ButterKnife Zelezny插件使用方法
例如:

@Override public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.simple_activity); 
  // 进行绑定 
  ButterKnife.bind(this); 
}

在布局文件上(上面的R.layout.simple_activity)右键,选择generate,弹出这个菜单:
2.png
之后,弹出这个菜单:

7.png
第一列复选框,勾上代表控件需要生成注解。
第二列勾上代表需要生成点击事件。
并且自动生成的id是XML布局文件里的id。
自此,就完成了,只需要点几下鼠标,就可以帮我们自动生成这些东西了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值