ButterKnife的使用

    xiaoxiao2021-03-25  103

    #####每次重复写findViewById()让人觉得比较麻烦,使用ButterKnife可以简化这个过程,Butter主要是用了注解来简化代码,用法也比较简单

    使用之前要先导入库:

    compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

    绑定View的方式

    @BindView(R.id.xx) View view;

    设置点击事件的方式

    @Onclick(R.id.xx) void xx(){ dosomthing(); }

    使用的时候只需要在OnCreate()方法中写入

    ButterKnife.bind(this);

    绑定资源: 如绑定String

    @BindString(R.Sring.xx) String xx; 在非Activity中使用: 如在Fragment中,在onCreateView()中调用: ButterKnife.bind(Context,view); 在Adapter中使用: 在ViewHolder中建立一个构造方法: ViewHolder(View v){ ButterKnife(Context,v); } 绑定任意的对象: ButterKnife.bind(this,activity);

    View列表

    @BindViews ({R.id.xx1,R.id.xx2,R.id.xx3}) List<EditText> edittexts;

    使用的是ButterKnife.apply(names,DISABLE); apply()方法允许对所有视图立刻进行处理

    Action和Setter接口允许指定简单的行为

    static final ButterKnife.Action<View> DISABLE = new ButterKnife.Action<View>() { @Override public void apply(View view, int index) { view.setEnabled(false); } }; static final ButterKnife.Setter<View, Boolean> ENABLED = new ButterKnife.Setter<View, Boolean>() { @Override public void set(View view, Boolean value, int index) { view.setEnabled(value); } };

    也可以用

    ButterKnife.apply(nameViews,View.ALPHA,0.0f);

    来更改视图的透明度

    指定多个ID的,处理单个的指令的方法

    @OnClick({R.id.a,R.id.b}) public void Onclick(Button button){ switch (button.getId()){ case R.id.a: Toast.makeText(MainActivity.this,"aaa",Toast.LENGTH_SHORT).show(); break; default: Toast.makeText(MainActivity.this,"bbb",Toast.LENGTH_SHORT).show(); break; } }

    跟直接用Onclick一样就行了

    就写这么多吧,这个源码具体怎么实现的现在还不知道,等有时间研究一下吧 最后贴上官方介绍页面:http://jakewharton.github.io/butterknife/

    转载请注明原文地址: https://ju.6miu.com/read-13554.html

    最新回复(0)