文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ButterKnife的用法。针对android studio3.6.1 ButterKnife10.0.0

2022-06-06 13:30

关注

配置

在Android Studio项目中配置使用ButterKnife
本文介绍使用的as版本为3.6.1,ButterKnife版本为10.0.0

1.首先在app的build.gradle文件中 dependencies里面添加

dependencies {
  //添加butterKnife的依赖
  implementation 'com.jakewharton:butterknife:10.0.0'
  annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

2. 在app的build.gralde文件中,在android下指定jdk的版本。

   //指定jdk的版本
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

3.通过as下载Android ButterKnife Zelezny插件

File-->setting-->plugins  (这里我遇到过一直加载不出来,网络特别慢的情况,我就尝试了好几次,然后进来没有在输入框输入这个插件,一直等插件列表加载完,挑选自己需要的插件安装的。不成功的情况可以多试试几次,或者可以尝试找梯子。我的就是试了好几次成功的)  安装成功后,重启android studio

尝试几次还是安装不行可参考文件https://blog.csdn.net/wwq614003946wwq/article/details/80625971

4.代码中如何使用,举例。MainActivity 中的布局文件。

在Activity的onCreate方法中。setContentView(R.layout.activity_main); 鼠标放在放在R.layout.activity_main布局文件的位置

右键layout->点击Generate->Generate ButterKnife Injections就可以了。会自动绑定控件id,自动加了ButterKnife.bind(this);activity与布局文件建立了绑定。

一般ButterKnife.bind()得到的UnBinder对象。平常写法都是拿到这个对象,全局定义一下,然后在onDestory方法中进行解绑。代码如下。

  private Unbinder unbinder;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        unbinder = ButterKnife.bind(this);
    }
    @Override
    protected void onDestroy() {
        unbinder.unbind();
        super.onDestroy();
    }
}

fragment依旧如此。 fragment进行绑定的代码是


ButterKnife.bind(this, contactsLayout);
 private Unbinder mUnbinder;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        context = getActivity();
        View contactsLayout = inflater.inflate(
                R.layout.fragment_maintab4_layout, container, false);
        mUnbinder = ButterKnife.bind(this, contactsLayout);
        initView(contactsLayout);
}

总结:

*** 上面的步骤一添加依赖的时候

最好用10.0.0版本。我之前用的是8.8.1版本的,然后当安装了Android ButterKnife Zelezny插件后就报错。

The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.

*** 报错信息。Static interface methods are only supported starting with Android N (--min-api 24): void butterknife.Unbinder.lambda$static$0()

这个错误就是需要添加jdk的依赖。就需要做上面的步骤二,


作者:棒怡情


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯