当我在Butterknife中使用BindView时,geeting null [英] Geeting null when i use BindView in Butterknife

查看:93
本文介绍了当我在Butterknife中使用BindView时,geeting null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的topActivity,它扩展了BaseActivity

Here my topActivity which extend BaseActivity

activity_top.xml

activity_top.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android.com/apk/res/android"; 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" android:orientation="vertical"> 
  <View android:id="@+id/activity_top_group_area1" 
   android:layout_width="wrap_content" 
   android:layout_height="match_parent"/>
 </LinearLayout> 

TopActivity.java

TopActivity.java

public class TopActivity extends BaseActivity {

    @BindView(R.id.activity_top_group_area1)

    View mViewClickArea1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_top);

        ButterKnife.bind(this);
        # do something... but mViewClickArea1 is null here.
     }
    }

和BaseActivity扩展了AppCompactActivity,在其中我进行了一些集中的权限工作

And the BaseActivity Which extend AppCompactActivity in which i do some centralize permission work

public class BaseActivity extends AppCompactActivity  {

# do some Run time Permission work that is ...
private int requestCodeM;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull final String[] permissions, @NonNull int[] grantResults) {
    boolean isPermissionGranted = false;
    if (requestCodeM == requestCode) {
        if (grantResults.length > 0) {
            /*--------------------------------------------------*/
            for (int i = 0; i < grantResults.length; i++) {
               if(grantResults[i] == PackageManager.PERMISSION_GRANTED){
                   isPermissionGranted=true;
               }else {
                   isPermissionGranted=false;
                   break;
               }
            }
            permissiongrantedResult(requestCode,isPermissionGranted);
        }
    }
}

public void addRequestPermission(String[] permissionRequest, int requestCode) {
    this.requestCodeM = requestCode;
    ActivityCompat.requestPermissions(ActivityWithRequestPermission.this, permissionRequest, requestCode);
}

public abstract void permissiongrantedResult(int requestCode, boolean grantStatus);`enter code here`
}

请看看这个.

推荐答案

在您的代码中尝试一下.

Try this in your code .

将xml代码更改为此

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<View
    android:id="@+id/activity_top_group_area1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"/>
</LinearLayout>

检查项目gradle

Check project gradle

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'
    // add this in your code
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'  
}

检查 app gradle

Check app gradle

apply plugin: 'com.android.application'
apply plugin: 'android-apt'  // add this 

...
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    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'
    // add this 
    apt 'com.jakewharton:butterknife-compiler:8.6.0
}

这篇关于当我在Butterknife中使用BindView时,geeting null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆