Android DeveloperAndroid知识

ButterKnife在Eclipse的应用

2017-06-28  本文已影响96人  AnandLin
ButterKnife

一、概述

ButterKnife相信熟悉Android开发的同学应该有听过或使用过,是应用于Android系统的View注入框架,主要作用就是方便我们开发,减少对于大量的组件的findViewById重复写(能偷懒的做好事情,绝不放过,这是每个程序猿的心声,嘻嘻),自从Google推出Android Studio之后就逐步放弃Eclipse了,这让电脑配置低或者代码环境限制的同学就很闹心了,所以本文章主要记录ButterKnifeEclipse中的使用,ButterKnife的具体使用会在后面文章再详细介绍!

二、Eclipse的配置

1.先下载好jar包放入对应项目的libs文件夹下。



 
 2.项目右键-Properties-Java Complier-Annotation Processing,具体设置如下所示:


3.接着展开Annotation Processing选择Factory Path,选中Enable project specific settings。然后点击 Add JARs…,选中libs中的ButterKnife的jar包


 然后点击ok保存设置,Eclipse将问你是否重新构建新项目,点击Yes。此时可看到你项目的根目录里有一个.apt_generated的文件夹,文件夹中包含YOURACTIVITY$$ViewInjector.java这样的文件,如果未发现可尝试Project → Clean清除下项目。
 
备注:
1.此处的ButterKnife的Jar包可在这里选择下载。
2.此处编译使用的jak 要再1.6以上版本。
3.在一些新版本中Eclipse将Annotation Processing 移除,导致有些同学在使用过程中发现无法选择 Compiler/Annotation Processing,此时可通过以下配置安装插件即可。

①.先打开Help菜单,点击Install New Software.



②.选择安装Juno



③.在下面的列表中找到Programming Languages节点并展开,找到Eclipse java Development Tools,勾选上,并安装,安装完毕后自动重启Eclipse即可。

至此在Eclipse的配置基本完毕,可以愉快的偷懒代码了,嘻嘻!

三、ButterKnife的简单使用

写到这里,我也有点想偷懒,直接上代码。

/**
 * ButterKnife的简单使用
 * @ClassName: MainActivity
 * @Description: TODO(ButterKnife的简单使用) 
 * @author Anand
 * @date 2017年6月28日 下午2:10:46
 */
public class MainActivity extends ActionBarActivity {
    
    /** ButterKnife注入 **/
    @Bind(R.id.et_content)
    EditText etContent;
    
    @Bind(R.id.btn_default)
    Button btnDefualt;
    @Bind(R.id.btn_diy)
    Button btnDiy;
    
    @Bind(R.id.tv_default)
    TextView tvDefault;
    @Bind(R.id.tv_diy)
    TextView tvDiy;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //ButterKnife绑定Activity
        ButterKnife.bind(this);
        
        initView();     //初始化视图
        initData();     //初始化数据
        initEvent();    //初始化事件
    }

    
    /**
     * 初始化视图
     */
    private void initView() {
        tvDiy.setText("测试Butterknife");
    }

    /**
     * 初始化数据
     */
    private void initData() {
        
    }

    /**
     * 初始化事件
     */
    private void initEvent() {
        
    }
    
    /**
     * ButterKnife的OnClick注解
     * 多个控件具有相同的事件
     * @param btn
     */
    @OnClick({R.id.btn_default,R.id.btn_diy})
    public void btnOnclick(Button btn){
        
        switch (btn.getId()) {
        case R.id.btn_default:
            Toast.makeText(this,"点击默认按钮",Toast.LENGTH_SHORT).show();
            break;
        default:
            Toast.makeText(this,"点击调整按钮",Toast.LENGTH_SHORT).show();
            break;
        }
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        
        //ButterKnife解绑
        ButterKnife.unbind(this);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读