• Android studio ButterKnife8.1.0空指针/相关配置及其简单使用


    ButterKnife 是这两年比较流行的开源库,是一个View注入框架,其主要功能是代替findViewByid()方法。同时还能够快速的添加监听事件,能够更容易的实现MVVM模式,是非常实用的工具之一。

    刚开始使用ButterKnife的时候很多人可能会遇到NullPointerException或者“找不到符号”,这皆是由于ButterKnife配置有误。下面我们来详细的来说明ButterKnife的配置

    首先我们需要导入ButterKnife

    如图

    也可以在这里添加

    同时还需要安装ButterKnife的插件

    这里我已经安装好了,看起来有一些不同。没安装的时候先搜索然后点下面的按钮就会出来了

    然后配置

    注意,这里如果没有完成上面安装插件的步骤会无法识别apt()

    还不理解的话,下面就贴出完整的build.gradle吧

     1 // Top-level build file where you can add configuration options common to all sub-projects/modules.
     2 
     3 buildscript {
     4     repositories {
     5         jcenter()
     6     }
     7     dependencies {
     8         classpath 'com.android.tools.build:gradle:2.1.0'
     9         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    10         // NOTE: Do not place your application dependencies here; they belong
    11         // in the individual module build.gradle files
    12     }
    13 }
    14 
    15 allprojects {
    16     repositories {
    17         jcenter()
    18     }
    19 }
    20 
    21 task clean(type: Delete) {
    22     delete rootProject.buildDir
    23 }

     

     1 apply plugin: 'com.android.application'
     2 
     3 android {
     4     compileSdkVersion 23
     5     buildToolsVersion "23.0.3"
     6 
     7     defaultConfig {
     8         applicationId "com.lcc.fjnu.damuvideobysohu"
     9         minSdkVersion 14
    10         targetSdkVersion 23
    11         versionCode 1
    12         versionName "1.0"
    13     }
    14     buildTypes {
    15         release {
    16             minifyEnabled false
    17             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    18         }
    19     }
    20 }
    21 
    22 buildscript {
    23     repositories {
    24         mavenCentral()
    25     }
    26     dependencies {
    27         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    28     }
    29 }
    30 
    31 apply plugin: 'com.neenbedankt.android-apt'
    32 
    33 dependencies {
    34     compile fileTree(include: ['*.jar'], dir: 'libs')
    35     testCompile 'junit:junit:4.12'
    36     compile 'com.android.support:appcompat-v7:23.3.0'
    37     compile 'com.android.support:design:23.3.0'
    38     compile 'com.jakewharton:butterknife:8.1.0'
    39     apt 'com.jakewharton:butterknife-compiler:8.1.0'
    40 }

     以上就是配置的过程

    再说一点ButterKnife8.1.0的绑定方法是@BindView 之前的版本是@Bind,再之前是@InjectView.

    具体的说明可以参照其官网(未墙) http://jakewharton.github.io/butterknife/

    这里会给出一个简单的范例:

     1 public class MainActivity extends AppCompatActivity {
     2 
     3     @BindView(R.id.toolbar)
     4     Toolbar mToolbar;
     5     @BindView(R.id.tabs)
     6     TabLayout mtabs;
     7     @BindView(R.id.appbar)
     8     AppBarLayout mappbar;
     9     @BindView(R.id.container)
    10     ViewPager container;
    11     @BindView(R.id.fab)
    12     FloatingActionButton fab;
    13 ......}

    不需要重新实例化以及findviewbyid(),代码变得更简洁明了 

  • 相关阅读:
    web安全之ssrf
    web安全之sql注入布尔注入
    web安全之sql注入报错型注入
    web安全之sqlload_file()和into outfile()
    浅谈 FHQ-Treap
    (菜鸟都能看懂的)网络最大流最小割,Ford-Fulkerson及Dinic详解
    浅谈最小生成树
    浅谈强连通分量(Tarjan)
    DP-DAY3游记
    关于01背包问题
  • 原文地址:https://www.cnblogs.com/Linccy/p/5621874.html
Copyright © 2020-2023  润新知