1、为什么要使用ButterKnife(黄油刀)?2、避免重复写findviewbyid()来绑定view,使代码简洁明了;3、简单的点击长按事件,不需要设置setonclicklistener(); 这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来, 其对性能的影响微乎其微(查看过Butter Knife的源码,其自定义注解的实现都是限定为RetentionPolicy.CLASS,也就是到编译出.class文件为止有效,在运行时不额外消耗性能, * 其是通过java注解自动生成java代码的形式来完成工作) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this);//初始化 } @BindView(R.id.b1)//绑定控件 public Button b1; @BindView(R.id.textview) public TextView textView; @BindView(R.id.image) public ImageView image; @BindString(R.string.app_name)//绑定字符串 public String app_name; @OnClick(R.id.b1)//监听按钮 void sunmit(){ image.setBackgroundResource(R.mipmap.aaaa); textView.setText("刘德华!"); b1.setText("APP的名称为:"+app_name); }