ButterKnife使用

来源:互联网 发布:新南威尔士预科 知乎 编辑:程序博客网 时间:2024/05/18 03:41

项目添加ButterKnife移步:http://blog.csdn.net/skeeing/article/details/52384025

首先介绍下butterKnife的用法,由于之前总是出现控件绑定不了,值为null

1.在总的根项目文件bulid.gradle下 添加

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
 dependencies {        classpath 'me.tatarka:gradle-retrolambda:3.2.5'        classpath 'com.android.tools.build:gradle:2.1.0'        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //只需添加这一行//        compile 'com.github.ozodrukh:CircularReveal:(latest-release)@aar'    }}
2.在你的当前项目下添加


apply plugin: 'com.android.application'apply plugin: 'com.neenbedankt.android-apt'//增加这一句

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:25.2.0'    compile 'com.android.support:design:25.2.0'    compile 'com.jakewharton:butterknife:8.2.1'   //增加这两句    apt 'com.jakewharton:butterknife-compiler:8.2.1'//增加这一句}

如果还是绑定不了,建议自己在avtivity中的setcontentView  重新写一个   绑定语句

ButterKnife.bind(this);

setContentView(R.layout.activity_main);ButterKnife.bind(this);
另外我是用插件生成的,即鼠标放在activity_main页面上 右键,有generate 自动生成

1 . View视图的绑定

class ExampleActivity extends Activity {  @BindView(R.id.title) TextView title;  @BindView(R.id.subtitle) TextView subtitle;  @BindView(R.id.footer) TextView footer;  @Override public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.simple_activity);    ButterKnife.bind(this);    // TODO Use fields...  }}

2 . 事件绑定

@OnClick(R.id.submit)public void submit(View view) {  // TODO submit data to server...}@OnClick(R.id.submit)public void sayHi(Button button) {  button.setText("Hello!");}这里要写View view

指定多个控件绑定一个方法

@OnClick({ R.id.door1, R.id.door2, R.id.door3 })public void pickDoor(DoorView door) {  if (door.hasPrizeBehind()) {    Toast.makeText(this, "You win!", LENGTH_SHORT).show();  } else {    Toast.makeText(this, "Try again", LENGTH_SHORT).show();  }}Activity ButterKnife.bind(this);必须在setContentView();之后,且父类bind绑定后,子类不需要再bind 2.Fragment ButterKnife.bind(this, mRootView);
0 0
原创粉丝点击