Android - 框架之ButterKnife的使用

Posted ITGungnir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android - 框架之ButterKnife的使用相关的知识,希望对你有一定的参考价值。

ButterKnife可以省去控件findViewById的步骤,提高开发效率。

 

用法:

1、添加依赖:

compile ‘com.jakewharton:butterknife:5.1.1‘

 

 

2、在Activity中使用:

public class MainActivity extends AppCompatActivity {
    // 使用ButterKnife初始化控件(省去了findViewById()方法的使用,提高了开发效率)
    @InjectView(R.id.tv)
    protected TextView tv;
    @InjectView(R.id.iv)
    protected ImageView iv;
    @InjectView(R.id.btn)
    protected Button button;

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

        // 注册ButterKnife
        ButterKnife.inject(this);

        tv.setText("Hello TextView");
        iv.setImageResource(R.mipmap.ic_launcher);
    }

    // 点击R.id.btn代表的控件时触发click()方法中的事件
    @OnClick(R.id.btn)
    protected void click() {
        tv.setText("Button Clicked");
    }
}

 

3、在Fragment中使用:
public class MainFragment extends Fragment {
    // 使用ButterKnife初始化控件(省去了findViewById()方法的使用,提高了开发效率)
    @InjectView(R.id.tv)
    TextView tv;
    @InjectView(R.id.iv)
    ImageView iv;
    @InjectView(R.id.btn)
    Button button;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_main, container, false);

        // 注册ButterKnife(在Fragment中使用ButterKnife需要指定一个Root View)
        ButterKnife.inject(this, view);
        return view;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        tv.setText("Hello ButterKnife");
        iv.setImageResource(R.mipmap.ic_launcher);
    }

    // 点击R.id.btn代表的控件时触发click()方法中的事件
    @OnClick(R.id.btn)
    public void click() {
        tv.setText("Button Clicked");
    }
}

 

注意:不管是方法还是控件,只要标注了ButterKnife的注解,就不能用private或static修饰!!

以上是关于Android - 框架之ButterKnife的使用的主要内容,如果未能解决你的问题,请参考以下文章

Android开发之手把手教你写ButterKnife框架

Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架

Android编程入门--开源框架ButterKnife

Android注解神器 ButterKnife框架

AndroidAndroid开发之著名框架ButterKnife的使用详解,butterknife8.1.0版本的使用方法

框架手写系列---apt注解处理器方式实现ButterKnife框架