美文网首页
ButterKnife使用

ButterKnife使用

作者: jeffrey12138 | 来源:发表于2020-08-28 10:58 被阅读0次

ButterKnife的配置步骤如下:
1、新建一个model(这个比较简单就不展示了)
2、model的配置
①在项目的build.gradle里面添加
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
如下图:


image.png

②、在model的build.gradle添加依赖:
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
这样就配置完成了,还有因为我使用的AS10.0的版本的,所以在配置的时候,如果遇到这种报错的话


image.png
解决办法如下:
检查项目和modle的build.gradle中是否存在如下代码
image.png
有的话,就删除掉就好了(因为android-apt插件与Android Gradle插件不兼容,所以才会报错)

好了,下面正式开始ButterKnife了

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.tv_text)//绑定控件
    TextView textView;
    @BindView(R.id.btn1)
    Button btn1;
    @BindView(R.id.btn2)
    Button btn2;
    @BindString(R.string.app_name)//绑定资源
    String string;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ButterKnife.bind(this);
        textView.setText(string);
        btn1.setText("btn1");
        btn2.setText("BTN2");
    }
    @OnClick({R.id.btn1,R.id.btn2})//绑定点击事件
    public void btnClick(View view){
        switch (view.getId()){
            case R.id.btn1:
                Toast.makeText(this,"Btn1 Cliked!",Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn2:
                Toast.makeText(this,"Btn2 Cliked!",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

在这里说下两个坑:
1、相信很多小伙对于java的封装的概念很清晰了,而且还会保持良好习惯,添加private修饰符,但是在ButterKnife里面注释的时候,不能添加private或者static否则会报下面的错误提示

image.png /
2、出现报错:
Static interface methods are only supported starting with Android N (--min-api 24): void butterknife.Unbinder.lambda0()
提示的意思是 最小api应为24才可以运行,但是实际应用App的时候,总不能只用在配置8.0以上的设备吧,于是有了下面的解决方案
在你运行的model的build.gradle中的android添加,就可以啦(实际上只是指定了jdk版本)
compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

大功告成,但是温馨提示下,真的要多去官网查看,人家都说了这个东西已经弃用了,我居然还研究这么久,emmm毕竟kotlin大法都已经可以直接调用了

相关文章

网友评论

      本文标题:ButterKnife使用

      本文链接:https://www.haomeiwen.com/subject/dscadktx.html