美文网首页
(二十二)ButterKnife框架面试问题

(二十二)ButterKnife框架面试问题

作者: lkmc2 | 来源:发表于2017-08-17 11:34 被阅读65次

一、Butterknife使用简介

Butterknife是一个依托Java的注解机制来实现辅助代码生成的框架,不通过反射机制。

在Android Studio中引入Butterknife需在build.gradle中加入如下代码:

dependencies {
  compile 'com.jakewharton:butterknife:8.8.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}

使用步骤:

1.绑定一个View

2.给一个View添加点击事件

3.给多个View添加点击事件

4.给ListView setItemClickListener

public class MainActivity extends AppCompatActivity {

    //1.绑定一个View(View不能为private 或者 static)
    @BindView(R.id.textview)
    TextView mTextView;

    //1.绑定一个View(View不能为private 或者 static)
    @BindView(R.id.mlistview)
    ListView mListView;

    //1.绑定一个View(View不能为private 或者 static)
    @BindView(R.id.imageview)
    ImageView mImageView;

    //2.给一个view添加点击事件
    @OnClick({R.id.textview, R.id.imageview})
    public void onTextViewClick() {
        Toast.makeText(this, "onTextViewClick", Toast.LENGTH_SHORT).show();
    }

    //3.给ListView setItemClickListener
    @OnItemClick(R.id.mlistview)
    public void onItemClick() {
        Toast.makeText(this, "onItemClick", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this); //绑定
    }
}

二、Butterknife原理

1.开始回扫描Java代码中所有的Butterknife注解

2.ButterKnifeProcessor会生成<className>$$ViewBinder内部类

3.调用bind方法加载生成的ViewBinder类

相关文章

网友评论

      本文标题:(二十二)ButterKnife框架面试问题

      本文链接:https://www.haomeiwen.com/subject/asmgrxtx.html