欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

AndroidStudio中ButterKnife 的配置和使用方法

程序员文章站 2023-03-28 09:15:05
1、 配置butterknife 在项目目录下找到build.gradle配置文件,添加内容如下 // top-level build file where you can add conf...

1、 配置butterknife

在项目目录下找到build.gradle配置文件,添加内容如下

// top-level build 
file where you can add configuration options common to all 
sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        
// note: do not place 
your application dependencies here; they belong
        // in the 
inpidual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: delete)
 {
    delete rootproject.builddir
}

app目录下中找到build.gradle配置文件(和上边的配置文件不是一个文件),在其中添加如下内容

dependencies {
    compile filetree(dir: 'libs', include: ['*.jar'])
    androidtestcompile('com.android.support.test.espresso:espresso-core:2.2.2',
 {
        exclude group: 
'com.android.support', 
module: 'support-annotations'
    })

    compile 'com.jakewharton:butterknife:8.6.0'
    apt 
'com.jakewharton:butterknife-compiler:8.6.0'

    compile
 'com.android.support:appcompat-v7:25.3.1'
    compile
 'com.android.support.constraint:constraint-layout:1.0.2'
    testcompile 'junit:junit:4.12'
}

然后sync now同步一下就配置好了。

2、添加butterknife插件

找到 file -> setting -> plugins,在搜索框中输入“android butterknife zelezny”,安装该插件后重启android studio。

3、代码中使用butterknife

在oncreate中初始化butterknife,然后在需要绑定的成员变量上通过bindview注解就可以绑定控件的id,之后就可以直接使用该变量操作对应的控件了。(注意:这里在定义变量是不要定义成private或static类型,否则会报错)

public class 
splashactivity extends appcompatactivity {

    @bindview(r.id.tv_splash_title)
    textview tvsplashtitle;
    @bindview(r.id.btn_splash_click)
    button btnsplashclick;

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_splash);
        
butterknife.bind(this);  //这里一定要在setcontentview后添加
tvsplashtitle.settext("该控件已经绑定");
    }
}

除了可以以view的形式绑定对应的控件,也可以通过其他标签绑定。

 

4、各种标签

绑定view

@bindview(r.id.tv_splash_title)
textview tvsplashtitle;

绑定事件(各种事件类型,这里只列举了三个)

@onclick(r.id.btn_splash_click)
public void btnclick()
{
    toast.maketext(this, "点击事件", toast.length_short).show();
}
@onlongclick(r.id.btn_splash_click)
public boolean btnlongclick()
{
    toast.maketext(this, "长按事件", toast.length_short).show();
    return true;
}    @bindarray(r.array.str1)

    string[] strings;
@onclick({r.id.btn1, r.id.btn2, r.id.btn3})     //绑定多个控件的事件
public void onviewclicked(view view) {
    switch (view.getid()) {
        case r.id.btn1:
            toast.maketext(this, "我是点击事件1", toast.length_short).show();
            break;
        case r.id.btn2:
            toast.maketext(this, "我是点击事件2", toast.length_short).show();
            break;
        case r.id.btn3:
            toast.maketext(this, "我是点击事件3", toast.length_short).show();
            break;
    }
}

绑定资源(各种资源类型等)

@bindstring(r.string.app_name)
string app_name;
@bindarray(r.array.str1)
string[] strings;
@bindbitmap(r.mipmap.ic_launcher)
bitmap bitmap;
@bindcolor(r.color.coloraccent)
int color;