Android的ButterKnife用上去无效是怎么回事?
本文介绍了Android的ButterKnife用上去无效是怎么回事?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
解决了
一开始只导入了 compile 'com.jakewharton:butterknife:8.0.1'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
compile 'com.jakewharton:butterknife:8.0.1'
apt 'com.jakewharton:butterknife-compiler:8.0.1'
}
问题描述
按照说明设置了,可是点击按钮根本不起作用,而且idButton用的时候也是空指针,说明这个库根本没起作用,是少设置了什么么?
代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.leu.myapplication.MainActivity">
<Button
android:id="@+id/id_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮"
/>
</LinearLayout>
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.id_button)
Button idButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick(R.id.id_button)
public void onClick() {
Toast.makeText(this, "啦啦啦", Toast.LENGTH_SHORT).show();
}
}
解决方案
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.oauth_fragment,container,false);
ButterKnife.inject(this,view);
return view;
}
去年的代码了,当时是这么注入的,不知道新版本里有没有改过API
这篇关于Android的ButterKnife用上去无效是怎么回事?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文