注解ButterKnife的基本使用

概述


ButterKnife的最新版本是8.4.0。
首先,需要导入ButterKnife的jar包。
  • 在AndroidStudio中,File->Project Structure->Dependencies->Library dependency 搜索butterknife即可,第一个就是.
  • 另外一种就是直接在build:grade(app)dependencies里添加:
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

ok,现在正式开始使用吧,用法也很简单
在Activity子类的onCreate()方法里使用ButterKnife.bind(this);即可
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        tv1.setText("hi!sy")

注意:一定要在setContentView之后写。

再然后,把光标放在R.layout.activity_main上,鼠标右击,选中Generate...(Alt+Insert),点击会出现:


然后这样

选中的有TextView点击事件和findViewById的注解,点击Confirm就成功了!
什么,你说没有,别着急,你需要安装一个小插件(不要嫌麻烦,其实很简单,一劳永逸)
在AndroidStudio->File->Settings->Plugins->搜索Zelezny下载添加就行 ,可以快速生成对应组件的实例对象,不用手动写。
使用时,在要导入注解的Activity 或 Fragment 或 ViewHolder的layout资源代码上,右键——>Generate——Generate ButterKnife Injections。

源码

public class MainActivity extends Activity {

    @BindView(R.id.tv_time)
    TextView tvTime;
    @BindView(R.id.activity_main)
    RelativeLayout activityMain;
    @BindView(R.id.tv_cal)
    TextView tvCal;
    @BindView(R.id.tv_date)
    TextView tvDate;
    Time time;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        tvTime.setText("Time类");
        tvCal.setText("Calender类");
        tvDate.setText("Date类");

        initTime();

    }

    private void initTime() {
        time = new Time();
        time.setToNow();

    }

    @OnClick({R.id.tv_cal, R.id.tv_date,R.id.tv_time})
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.tv_time://点击第一个
                String times = time.year + "年" + time.month + "月" + time.monthDay
                        + "日" + time.hour + "时" + time.minute + "分" + time.second + "秒"
                        + ":现在是一年中的第" + time.yearDay + "天";
                Toast.makeText(this, Time.getCurrentTimezone() + times, Toast.LENGTH_SHORT).show();
                tvTime.setText(times);
                break;
            case R.id.tv_cal:
                break;
            case R.id.tv_date:
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
//        Unbinder unbinder=ButterKnife.bind(this);
//        unbinder.unbind();
        ButterKnife.bind(this).unbind();
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值