• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 厌烦了写findViewById 试试ButterKnife吧,butterknife

厌烦了写findViewById 试试ButterKnife吧,butterknife

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了findviewbyid,findviewbyid用法,android findviewbyid,findviewbyid返回null,findviewbyid找不到等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

厌烦了写findViewById 试试ButterKnife吧,butterknife


先上官网

http://jakewharton.github.io/butterknife/  和 https://github.com/JakeWharton/butterknife

配置开发环境

在代码开始之前 先要将库加入依赖

Eclipse 

去官网手工下载 jar 包, 放到 libs目录 或者其他方式加入到 Build Path当中

Android Studio

GUI 操作的方式 

菜单上 File -> Project Structure (或者直接点工具栏上的Project Structure) -> 左侧 Modules下的 app  -> 右侧  Dependencies 标签页 -> +号 -> Library dependency  搜索 butterknife  选择 com.jakewharton:butterknife:8.4.0 然后 OK, 版本号会变 , 反正选择没有 -compiler 这种带尾巴的。

新的butterknife 增加了 annotationProcessor 这种方式无法添加, 所以最终还是要编辑 Gradle Script

 

编辑 Gradle Script的方式 

打开 Module app的 build.gradle , 在dependencies 添加两行

dependencies {
    ...
    compile 'com.jakewharton:butterknife:8.4.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
   ...
}

省略号代表其他已有的 dependencies 。 添加之后 sync 

启动ButterKnife

开发环境配好后, 编码开始

在 Activity中使用, 首先要启动butterknife , 在 onCreate里 setContentView 之后立即 ButterKnife.bind(this);

   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

 

绑定View

是用@BindView 替代findViewById

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.btnGet)
    Button mBtnGet;

    @BindView(R.id.tvResult)
    TextView mTvResult;

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

        mBtnGet.setText("do get");

    }
}

注意: 注解只能用在类成员上, 成员不能用 private 或 static 修饰, 不能用在方法中的局部变量上

绑定 资源

    @BindString(R.string.app_name)
    String appName;

    @BindColor(R.color.colorPrimary)
    int colorPrimary;

    @BindBool(R.bool.bool_name)
    boolean boolName;

还支持更多类型,就不一一列举类

 

绑定 click 事件

不用声明 view 也不用setOnClickListener   , 参数是可有可无的, 如果不使用,不写省事

    @OnClick(R.id.btnPost) void doPost() {
        mTvResult.setText("do post done");
    }

 当然也可以像 onClickListener 一样带上参数

    @OnClick(R.id.btnPost) void doPost(View view) {
        Button btnPost = (Button)view;
        mTvResult.setText("do post done " + btnPost.getText().toString());
    }

还可以把强转都省了,直接在参数上使用要转的确切类型butterknife能帮你自动转型

    @OnClick(R.id.btnPost) void doPost(Button btnPost) {
        mTvResult.setText("do post done " + btnPost.getText().toString());
    }

 

 

发

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 厌烦了写findViewById 试试ButterKnife吧,butterknife
  • Kotlin的android扩展:对findViewById说再见(KAD 04),kotlinfindviewbyid

相关文章

  • 2017-05-26厌烦了写findViewById 试试ButterKnife吧,butterknife
  • 2017-05-26Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器,simplearrayadapter
  • 2017-05-26Android设计模式之单例模式的七种写法
  • 2017-05-227.2.2 Android JSON数据解析
  • 2017-05-26Android--split()分割字符串特殊用法,csplit字符串分割
  • 2017-05-26Android常见问题集锦
  • 2017-05-26匿名社交1--登陆,匿名社交1--
  • 2017-05-26关于Android滑动冲突的解决方法(二)
  • 2017-05-26android视图学习---从源码角度来理解onMeasure过程
  • 2017-05-26android设备使用usb串口传输数据,android设备usb串口

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android解析json数据,android解析json
    • 三种POST和GET的提交方式,postget提交
    • Android的Kotlin秘方(I):OnGlobalLayoutListener,
    • 分布式协议Paxos学习笔记
    • 自己实现android侧滑菜单
    • Android 实现闪屏页和右上角的倒计时跳转,android跳转
    • android中常见的设计模式有哪些?,android设计模式
    • Android 自定义控件之第三讲:obtainStyledAttributes 系列函数详解
    • Retrofit+RxJava(1)-在Android Studio中配置,retrofitrxjava
    • android自定义activity,androidactivity

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有