ButterKnife简单使用

来源:互联网 发布:淘宝二手电脑店铺 编辑:程序博客网 时间:2024/05/11 19:37

1.ButterKnife引入

GitHub—>ButterKnife

官方文档–>官方文档

    dependencies {       compile fileTree(dir: 'libs', include: ['*.jar'])       testCompile 'junit:junit:4.12'       compile 'com.android.support:appcompat-v7:23.2.0'       compile 'com.jakewharton:butterknife:7.0.1'    }

2.Activity中的使用

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

3.Fragment中的使用

   @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_blank, container, false);        //绑定Fragment        ButterKnife.bind(this,view);        return view;    }    @Override    public void onDestroyView() {        super.onDestroyView();        //解除绑定        ButterKnife.unbind(this);    }

5.ViewHolder中的使用

    class ViewHolder {    @Bind(R.id.tv_text) TextView tv_text;    @Bind(R.id.title) TextView title;    public ViewHolder(View view) {     //绑定      ButterKnife.bind(this, view);    }  }

6..根据id引用各种文件

   //根据ID获取一个Button    @Bind(R.id.bt_1)    Button bt1;    //获取一个颜色值    @BindColor(R.color.colorAccent)    int colorAccent;    //获取String中的字符串    @BindString(R.string.app_name)    String appName;    //获取dimens中定义的值    @BindDimen(R.dimen.activity_horizontal_margin)    int dimen;    //获取一张图片    @BindDrawable(R.mipmap.ic_launcher)    Drawable ic_launcher;    //获取一组View    @Bind({R.id.bt_1,R.id.bt_2,R.id.bt_3})    List<View> btList;

7.各种点击事件

    //点击事件    @OnClick(R.id.bt_1)    void onClick() {        Toast.makeText(this, "点击" + bt1.getText().toString(), Toast.LENGTH_SHORT).show();    }    //点击事件,参数就是你当前点击的View    //OnLongClick同样支持    @OnClick(R.id.bt_1)    void onClick(TextView textView) {        textView.setText("点击了");        Toast.makeText(this, "点击", Toast.LENGTH_SHORT).show();    }    //长按事件,必须返回一个Boolean值    @OnLongClick(R.id.bt_1)    boolean LongClick(){        Toast.makeText(this, "长按" + bt1.getText().toString(), Toast.LENGTH_SHORT).show();        return true;    }    //ListView的点击事件,不传或者只传int 位置也可以    @OnItemClick(R.id.listView)    void OnItemClick(TextView v,int p) {        Toast.makeText(this, "点击了"+p+"--"+v.getText().toString(), Toast.LENGTH_SHORT).show();    }

6.给一组View执行统一的操作

      ButterKnife.apply(btList, new ButterKnife.Action<View>() {            @Override            public void apply(View view, int index) {            //这里来执行统一的操作            }        });
0 0