Android开发---ButterKnife的学习

       ButterKnife是一个依托Java的注解机制来实现辅助代码生成的框架,让你可以省去findViewById这些经常出现的重复性代码,以及setOnClickListener此类的监听器引入,通过注释是程序更加简洁,以下是该开源框架的github地址:

                                                            https://github.com/JakeWharton/butterknife

       1.引入包以及配置

              由于引入最新的10.1.0会出现Androidx和Android support冲突。所以在这我引入的是ButterKnife9.0.0版本。如果要引入10.1.0,那么冲突的解决方法可以参考一下全篇第二点。

              引入步骤:

              (1)在app/build.gradle下

android {
    .......
    ......
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
     ..................
..............
    implementation 'com.jakewharton:butterknife:9.0.0-rc1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
}

              (2)在build.gradle下

buildscript {
    repositories {
        mavenCentral()
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

              (2)在build.gradle下

    2.引入包以及配置后可能会出现Androidx和Android support库不能共存

              解决方法可参考这边博文:https://www.jianshu.com/p/f7a7a8765294?tdsourcetag=s_pctim_aiomsg 或者  https://blog.csdn.net/Night_X/article/details/86653715

       3.简单使用方法

          这里简单使用@BindView和@OnClick

          在定义的Activity中绑定View后,使用ButterKnife.bind()方法

        ButterKnife.bind(this);
        initView();

          在指定组件前使用注解

    @BindView(R.id.phone)private InputView mInputPhone;

    @OnClick(R.id.bt_commit)
    public void onCommitClick(View view){
        //获取手机号
        String phone = mInputPhone.getInputStr();

        //获取密码
        String password = mInputPassword.getInputStr();

//        if(UserUtils.validateLogin(this,phone,password)){
//            //执行网络传输验证是否手机号密码匹配
//        }


        //测试输入合法性
        if(!UserUtils.validateLogin(this,phone,password)){
            return;
        }

        //跳转到应用主页
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
        finish();
    }

猜你喜欢

转载自blog.csdn.net/weixin_39071173/article/details/89465561