GVKun编程网logo

Android注解ButterKnife的基本使用(android 注解的使用)

13

想了解Android注解ButterKnife的基本使用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于android注解的使用的相关问题,此外,我们还将为您介绍关于AndroidButte

想了解Android注解ButterKnife的基本使用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于android 注解的使用的相关问题,此外,我们还将为您介绍关于Android Butter Knife 框架、Android ButterKnife Zelezny、Android Butterknife 注入框架、Android butterknife 的简单使用的新知识。

本文目录一览:

Android注解ButterKnife的基本使用(android 注解的使用)

Android注解ButterKnife的基本使用(android 注解的使用)

ButterKnife的最新版本是8.4.0。

首先,需要导入ButterKnife的jar包。

在AndroidStudio中,File->Project Structure->Dependencies->Library dependency 搜索butterknife即可,第一个就是.

另外一种就是直接在build:grade(app)dependencies里添加:

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

ok,现在正式开始使用吧,用法也很简单

在Activity子类的onCreate()方法里使用ButterKnife.bind(this);即可

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ButterKnife.bind(this); 
    tv1.setText("hi!sy") 

注意:一定要在setContentView之后写。

再然后,把光标放在R.layout.activity_main上,鼠标右击,选中Generate...(Alt+Insert),点击会出现:

然后这样

选中的有TextView点击事件和findViewById的注解,点击Confirm就成功了!

什么,你说没有,别着急,你需要安装一个小插件(不要嫌麻烦,其实很简单,一劳永逸)

AndroidStudio->File->Settings->Plugins->搜索Zelezny下载添加就行 ,可以快速生成对应组件的实例对象,不用手动写。

使用时,在要导入注解的Activity 或 Fragment 或 ViewHolder的layout资源代码上,右键――>Generate――Generate ButterKnife Injections。

源码

public class MainActivity extends Activity { 
   @BindView(R.id.tv_time) 
  TextView tvTime; 
  @BindView(R.id.activity_main) 
  RelativeLayout activityMain; 
  @BindView(R.id.tv_cal) 
  TextView tvCal; 
  @BindView(R.id.tv_date) 
  TextView tvDate; 
  Time time; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ButterKnife.bind(this); 
    tvTime.setText("Time类"); 
    tvCal.setText("Calender类"); 
    tvDate.setText("Date类"); 
    initTime(); 
  } 
  private void initTime() { 
    time = new Time(); 
    time.setToNow(); 
  } 
  @OnClick({R.id.tv_cal,R.id.tv_date,R.id.tv_time}) 
  public void onClick(View view) { 
    switch (view.getId()) { 
      case R.id.tv_time://点击第一个 
        String times = time.year + "年" + time.month + "月" + time.monthDay 
            + "日" + time.hour + "时" + time.minute + "分" + time.second + "秒" 
            + ":现在是一年中的第" + time.yearDay + "天"; 
        Toast.makeText(this,Time.getCurrentTimezone() + times,Toast.LENGTH_SHORT).show(); 
        tvTime.setText(times); 
        break; 
      case R.id.tv_cal: 
        break; 
      case R.id.tv_date: 
        break; 
    } 
  } 
  @Override 
  protected void onDestroy() { 
    super.onDestroy(); 
//    Unbinder unbinder=ButterKnife.bind(this); 
//    unbinder.unbind(); 
    ButterKnife.bind(this).unbind(); 
  } 
} 

以上所述是小编给大家介绍的Android注解ButterKnife的基本使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

Android Butter Knife 框架

Android Butter Knife 框架

Android Butter Knife 在项目中的配置及插件安装请见 AS 中安装插件及常用插件

ButterKnife 的优势

  • 避免过多的 findViewById 的操作,直接对 view 进行注解绑定点击事件
  • 因为是编译期的注解,在运行时不会影响 App 的效率,使用配置方便
  • 方便的处理 Adapter 里的 ViewHolder 绑定问题
  • 可以简化代码书写,逻辑清晰

ButterKnife 的使用

由于每次在 Acitivity 中都要进行 ButterKnife 的 bind 操作,所以建议将 bind 操作写到 BaseActivity 中,绑定 Activity 必须在 setContentView 之后,代码如下:

public abstract class BaseActivity extends Activity {
    private Unbinder unbinder;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getContentView());
        unbinder = ButterKnife.bind(this);

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unbinder.unbind();
    }
    protected abstract int getContentView();

}

而其他 Activity 只需继承 BaseActivity,实现 getContentView 方法,在 getContentView 返回 Activity 的布局文件即可。

具体使用方法可参看 Android Butter Knife 框架 —— 最好用的 View 注入

ButterKnife 使用心得

  • ButterKnife.bind () 的调用在 Activity 中必须在 setContentView 之后
  • 属性布局不能用 private or static 修饰,否则会报错
  • 可以写一个 BaseActivity 来调用 ButterKnife.bind () 方法,子类则不需要再进行 bind 操作
  • 在 8.4 中 ButterKnife 移除了 unBind 方法,使用 ButterKnife.bind (this) 返回一个 Unbinder 的引用,通过 Unbinder 的 unbind () 方法进行解除绑定

参考连接:

http://https://www.jianshu.com/p/9ad21e548b69

https://www.jianshu.com/p/83919fca8d84

Android ButterKnife Zelezny

Android ButterKnife Zelezny

参考地址:https://github.com/avast/android-butterknife-zelezny

1)下载插件:Preferences → Plugins → Browse repositories and search for ButterKnife Zelezny

     如下图所示:


2)重启studio,在build.gradle 中配置compile ''com.jakewharton:butterknife:6.1.0''

3) 在setContentView()布局xml上右键点击Generate,选择ButterKnife即可。

如下图:


Android Butterknife 注入框架

Android Butterknife 注入框架

 简介

  ButterKnife是一个专注于Android系统的View注入框架,当一个布局十分复杂时,需要引入执行大量的findViewById代码来找到View的对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项目集成起来也是特别方便,使用起来也是特别简单。

ButterKnife的优势

  1. 强大的View绑定事件和资源文件的绑定
  2. 使用的便捷性上,剔除了原始绑定时候的复杂性
  3. 由于大多数的注解都是在编译期,所以不会影响程序运行的效率
  4. 代码清晰,可读性相对来说要强很多

github 地址: https://github.com/JakeWharton/butterknife

如何使用?

  在Android Studio 项目中配置ButterKnife

 1.在Project的 build.gradle 中添加如下代码:

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath ''com.android.tools.build:gradle:3.2.1''
        //添加如下代码
        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.在App的 build.gradle 中添加如下代码:

apply plugin: ''com.android.application''
apply plugin: ''com.jakewharton.butterknife''//添加这一行

android {
    compileSdkVersion 28



    defaultConfig {
        applicationId "com.hejun.loader"
        minSdkVersion 26
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
        }
    }

}

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

    implementation ''com.android.support:appcompat-v7:28.0.0''
    implementation ''com.android.support.constraint:constraint-layout:1.1.3''
    testImplementation ''junit:junit:4.12''
    androidTestImplementation ''com.android.support.test:runner:1.0.2''
    androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.2''
    implementation ''com.jakewharton:butterknife:9.0.0-rc2''
    annotationProcessor ''com.jakewharton:butterknife-compiler:9.0.0-rc2''//添加这一行
}

  ButterKnife插件的添加:可以快速绑定

   File -> Settings -> Plugins -> 搜索ButterKnife,找到Android ButterKnife Zeleany进行安装重启AndroidStudio

插件的使用:在布局资源上右键点击,如下图

选中需要绑定的view ,点击confim会自动生成代码

ButterKnife的注解类型

  1.绑定注解,视图,资源等等

  2.绑定事件

注意:在使用Butterknife 是要 绑定Butterknife .如下

1.在activity中绑定

public class MainActivity extends AppCompatActivity{  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        //绑定初始化ButterKnife  
        ButterKnife.bind(this);  
    }  
}  

 2.在Fragment中绑定

Fragment的生命周期不同于activity。在onCreateView中绑定一个Fragment时,在onDestroyView中将视图设置为null。当你调用bind来为你绑定一个Fragment时,Butter Knife会返回一个Unbinder的实例。在适当的生命周期(onDestroyView)回调中调用它的unbind方法进行Fragment解绑。使用ButterKnife.bind(this, view)进行绑定。

public class ButterknifeFragment extends Fragment{  
    private Unbinder unbinder;  
    @Override  
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                             Bundle savedInstanceState) {  
        View view = inflater.inflate(R.layout.fragment, container, false);  
        //返回一个Unbinder值(进行解绑),注意这里的this不能使用getActivity()  
        unbinder = ButterKnife.bind(this, view);  
        return view;  
    }  

    /** 
     * onDestroyView中进行解绑操作 
     */  
    @Override  
    public void onDestroyView() {  
        super.onDestroyView();  
        unbinder.unbind();  
    }  
}  

3.在Adapter中绑定

  在Adapter的ViewHolder中使用,将ViewHolder加一个构造方法,在new ViewHolder的时候把view传递进去。使用ButterKnife.bind(this, view)进行绑定

class Adapter extends BaseAdapter {

        private Context context;

        private List<Userbean> users = new ArrayList<>();

        public Adapter(Context context) {
            this.context = context;
        }

        public void addUsers(List<Userbean> userList) {
            users.addAll(userList);
            notifyDataSetChanged();
        }

        @Override
        public int getCount() {
            return users.size();
        }

        @Override
        public Userbean getItem(int position) {
            return users.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder = null;
            if (convertView == null) {
                convertView = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
                viewHolder = new ViewHolder(convertView);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            Userbean userbean = users.get(position);
            viewHolder.name.setText(userbean.getName());
            viewHolder.password.setText(userbean.getPassword());
            return convertView;
        }

        class ViewHolder {
            @BindView(R.id.name)
            TextView name;
            @BindView(R.id.password)
            TextView password;

            ViewHolder(View view) {
                ButterKnife.bind(this, view);
            }
        }
    }

 

Android butterknife 的简单使用

Android butterknife 的简单使用

gitup 地址:https://github.com/JakeWharton/butterknife

介绍文章:https://blog.csdn.net/qq_29924041/article/details/80538360

 

一、导入

implementation ''com.jakewharton:butterknife:10.2.0''
annotationProcessor ''com.jakewharton:butterknife-compiler:10.2.0''

同时在上面的android中加上
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
二、安装插件

在 File->Setting->Plugins 中输入 ButterKnife Zelezny 

添加插件,然后重启 AndroidStudio

三、在activity使用

先定义布局文件

 

 

 

activity
R.layout.activity_mainalt+insert

 

 

 四、在 fragment 中使用

布局与 activity 中基本一样

但是要加几个步骤

1、实例化

private Unbinder unbinder;

2、在onCreateView()方法进行绑定

 

 3、最后记得在 onDestroyView () 方法中进行解绑

 

 

 





 




今天关于Android注解ButterKnife的基本使用android 注解的使用的介绍到此结束,谢谢您的阅读,有关Android Butter Knife 框架、Android ButterKnife Zelezny、Android Butterknife 注入框架、Android butterknife 的简单使用等更多相关知识的信息可以在本站进行查询。

本文标签: