美文网首页
ButterKnife使用详解

ButterKnife使用详解

作者: 貌似殴打 | 来源:发表于2018-11-29 13:14 被阅读0次

前言

ButterKnife是控件注入框架,可以帮助安卓开发者省去初始化控件的重复性工作,简单快捷地初始化布局文件中的控件,极大地提升开发效率。

导入ButterKnife至项目中

在项目的build.gradle中添加依赖,然后同步项目,即可下载butterknife库至项目中

dependencies {

    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:25.2.0'

    //加入下面这两行代码

    implementation 'com.jakewharton:butterknife:8.8.1'

    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

}

简单使用butterknife初始化控件

1.创建一个android工程,布局如下 

2.在activity中的oncreate()方法里初始化butterknife框架 

注意初始化要放在setView()之后

@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_butter_knife_test);

        ButterKnife.bind(this);

    }

3.查找TextView与Button

public class ButterKnifeTestActivity extends AppCompatActivity {

    //绑定控件,省去了写findviewbyid的重复性操作

    @BindView(R.id.tv_test1)

    private TextView tvTest;

    @BindView(R.id.btn_test1)

    private Button btnTest;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_butter_knife_test);

        ButterKnife.bind(this);

    }

}

4.测试控件是否被正确初始化

tvTest.setText("文本控件已被初始化");btnTest.setText("按钮被初始化");

意思是控件不能被声明为私有的或者是静态的,看来butterknife框架是对控件声明有限制的,将private去掉即可。

    @BindView(R.id.tv_test1)

  TextView tvTest;

    @BindView(R.id.btn_test1)

    Button btnTest;

5.给按钮设置点击监听事件

@OnClick(R.id.btn_test1)

    public void onclick(View view){

        btnTest.setText("我被点击了");

        tvTest.setText("天若有情天亦老");

    }

随便写一个方法,参数可以放View也可以不放任何参数,

在方法上一行注解OnClick即可绑定点击事件,注意该方法必须不能为private或者是static的,与声明时规则一致。

之前在主module中添加了butterknifte插件并构建异常的解决方案。

第一步:

buildscript {

    repositories {

        jcenter()

    }

    dependencies {

        classpath 'com.android.tools.build:gradle:2.3.0'

        //删除前文中所说在工程的build.gradle中引入的插件

        //classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'

    }

}

allprojects {

    repositories {

        jcenter()

    }

}

第二步

apply plugin: 'com.android.application'

//在app.build删除下面这段代码

//apply plugin: 'com.jakewharton.butterknife'

第三步

将butterknife的依赖改为下述代码

implementation 'com.jakewharton:butterknife:8.8.1'

annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

相关文章

  • Android常用之Butterknife使用详解

    Android常用之Butterknife使用详解 使用Butterknife很久了,一直没有写过文章,今天记录一...

  • ButterKnife使用详解

    (1)ButterKnife是什么? 在开发过程中,我们总是会写大量的findViewById和点击事件,像初始v...

  • ButterKnife使用详解

    前言 ButterKnife是控件注入框架,可以帮助安卓开发者省去初始化控件的重复性工作,简单快捷地初始化布局文件...

  • ButterKnife使用详解

    注解库, JakeWharton大神的杰作 Note:文章基于8.5.1版本,不同的版本之间用法可能会稍有差异,实...

  • Butterknife使用详解

    项目地址 GitHub地址:https://github.com/JakeWharton/butterknife ...

  • ButterKnife使用详解

    版权声明 原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl 参考资料 http...

  • ButterKnife使用详解

    写在前面:该文档使用7.0版本,8.0版本方法名有所改动,建议看官方文档,整体业务逻辑和原理没什么变动,官网 在A...

  • ButterKnife使用详解

    1.在app目录的gradle中添加 2.(1)在Activity的onCreate方法中的setContentV...

  • ButterKnife使用详解

    http://blog.csdn.net/itjianghuxiaoxiong/article/details/5...

  • ButterKnife使用详解

    以前的话经常使用findViewById()来绑定布局中ID,这样写不仅麻烦而且还没有什么效率,今天推荐一款由Ja...

网友评论

      本文标题:ButterKnife使用详解

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