ButterKnife的使用:
简介
下载地址
使用步骤
常用功能
例子
空指针问题
一. 简介
ButterKnife是注解中相对简单易懂的很不错的开源框架
强大的View绑定和Click事件处理功能,简化代码,提升开发效率
运行时不会影响APP效率,使用配置方便
代码清晰,可读性强
二. 下载地址
下载地址:https://github.com/JakeWharton/butterknife
这里面也包括它的用法。
三. 使用步骤
在Setting -> Plugins中输入butterknife -> Android ButterKnife Aelezny -> 点击安装
Module里的build.gradle里面添加
compile 'com.jakewharton:butterknife:8.5.1'
四. 常用功能
1.省略findViewById()
- Activity中使用
@BindView(R.id.tv_butterknife)
TextView tvButterknife;
2. 省略setOnClickListener()
@OnClick(R.id.cb_butterknife)
void CBbutterknife(View view)
{
Toast.makeText(this, "点击了CheckBox", Toast.LENGTH_SHORT).show();
}
五. 例子
1. 在Activity中使用ButterKnife
activity_main:
<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.wumeng.butterknife.MainActivity">
<include layout="@layout/titlebar"/>
<TextView
android:id="@+id/tv_butterknife"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="我喜欢ButterKnife"
android:layout_margin="10dp"/>
<CheckBox
android:id="@+id/cb_butterknife"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox"
android:textSize="20dp"
android:layout_margin="10dp"/>
<Button
android:id="@+id/bt_butterknife"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="button"
android:textAllCaps="false"
android:textSize="20sp"
android:layout_margin="10dp"/>
</LinearLayout>
MainActivity:
public class MainActivity extends AppCompatActivity
{
@BindView(R.id.tv_butterknife)
TextView tvButterknife;
@BindView(R.id.cb_butterknife)
CheckBox cbButterknife;
@BindView(R.id.bt_butterknife)
Button btButterknife;
@BindView(R.id.title_butterknife)
TextView title_butterknife;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initData();
}
private void initData()
{
//初始化标题
title_butterknife.setText("ButterKnife");
}
@OnClick(R.id.cb_butterknife)
void CBbutterknife(View view)
{
Toast.makeText(this, "点击了CheckBox", Toast.LENGTH_SHORT).show();
}
@OnClick(R.id.bt_butterknife)
void BTbutterknife(View view)
{
switch (view.getId())
{
case R.id.bt_butterknife:
Toast.makeText(this, "点击了Button", Toast.LENGTH_SHORT).show();
break;
}
}
}
2. ButterKnife在ViewHolder中使用
static class Viewholder
{
@BindView(R.id.iv_item_imageloader_listview)
ImageView iv;
@BindView(R.id.tv_item_imageloader_listview)
TextView tv;
public Viewholder(View view)
{
ButterKnife.bind(this,view);
}
}
空指针的问题
运行报错,提示空指针异常NullPointerException。
1.打开ButterKnife的项目主页:https://github.com/JakeWharton/butterknife
我们打开build.gradle(Moudle:app)把最下面的一句填上。
我们打开build.gradle(project)把上面classpath一句加上。
3
我们打开build.gradle(Moudle:app)把最下面的一句填上。
在运行就可以解决空指针的问题了。
上面例子的地址:https://coding.net/u/wumeng_1993/p/Test_ButterKnife/git