5. ButterKnife的使用

ButterKnife

ButterKnife的使用:

简介
下载地址
使用步骤
常用功能
例子
空指针问题

一. 简介

  1. ButterKnife是注解中相对简单易懂的很不错的开源框架

  2. 强大的View绑定和Click事件处理功能,简化代码,提升开发效率

  3. 运行时不会影响APP效率,使用配置方便

  4. 代码清晰,可读性强

二. 下载地址

下载地址:https://github.com/JakeWharton/butterknife

这里面也包括它的用法。

三. 使用步骤

  1. 在Setting -> Plugins中输入butterknife -> Android ButterKnife Aelezny -> 点击安装

  2. Module里的build.gradle里面添加
    compile 'com.jakewharton:butterknife:8.5.1'

四. 常用功能

1.省略findViewById()

  1. 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容