csschn

Android,你等等我。。。

导航

【原创】初识懒人开发库---ButterKnife

今天再看别人代码的时候,看到了自己没见过的代码,看起来挺方便的,具体代码如下:

 1   @InjectView(R.id.iv_left)
 2     ImageView iv_left;
3 @InjectView(R.id.et_account) 4 EditText et_account; 5 6 ButterKnife.inject(this); 7 8 @OnClick(R.id.iv_left) 9 public void back() { 10 finish(); 11 }

观察发现和我们在xml文件中定义的控件有一定的关系,就去百度了一下,才知道是一种懒人框架,可以直接实例化控件,并且建立控件的点击监听事件,去学习使用的过程很曲折,不多说,直接说最简单的办法:

  1. 打开Android Studio的Setting---->Plugins---->browse repositories..,点开之后搜索Android ButterKnife;
  2. 点击Install就可以添加到自己的设计器里面,然后添加完成要重启AS;
  3. 在活动的setContentView(R.layout.activity_login);处,把鼠标光标停留在activity_login布局处,点击右键选择Generate--->Generate ButterKnife Injections,就可以让我们自己选择要实例化的控件,还可以创建ViewHolder来存放控件

下面是自己使用的一个例子,看起来很直观,并且很省事:

 1 public class LoginOneKeyActivity extends BaseActivity {
 2 
 3     MyCountTimer timer;
 4 
 5     @Bind(R.id.iv_left)
 6     ImageView ivLeft;
 7     @Bind(R.id.tv_title)
 8     TextView tvTitle;
 9     @Bind(R.id.et_phone)
10     EditText etPhone;
11     @Bind(R.id.et_verify_code)
12     EditText etVerifyCode;
13     @Bind(R.id.btn_send)
14     Button btnSend;
15     @Bind(R.id.btn_login)
16     Button btnLogin;
17 
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_login_onekey);
22         ButterKnife.bind(this);
23         ivLeft.setVisibility(View.VISIBLE);
24         tvTitle.setText("手机号码一键登录");
25     }
26 
27     @OnClick({R.id.iv_left, R.id.btn_send, R.id.btn_login})
28     public void onClick(View view) {
29         switch (view.getId()) {
30             case R.id.iv_left:finish();
31                 break;
32             case R.id.btn_send:requestSMSCode();
33                 break;
34             case R.id.btn_login:oneKeyLogin();
35                 break;
36         }
37     }

可见,比原来使用findViewById方法来实例化控件方便了很多,并且可以直接生成点击事件,在里面写你要做的操作即可

posted on 2016-03-20 00:07  csschn  阅读(293)  评论(0编辑  收藏  举报