Andorid 不用 findViewById 也不用BindView 再也不用写繁琐的代码!让你的界面更加简洁

之前一直在用ButterKnife也觉得挺好用的,只是最近在做项目模块化的时候发现在子模块之中的id并非为常量导致子模块所有注解报错,虽然找到一些解决的办法不过都比较麻烦,而且我觉得也有些曲线救国的感觉。于是我开始用起了最传统的方法findViewById 结果就出现了 界面之中 一大堆的 View 定义 以及 一大堆的findViewById 的调用,这让稍微有点强迫症的我并受不了。 

例如这样:

TextView textView;

ImageView ImageView;

ImageView ImageView;

ImageView ImageView;

void init(View view) {

    textView = view.findViewById();

    ImageView = view.findViewById();

    ImageView = view.findViewById();

}

甚至更多 这样我十分郁闷。后来我想到在用Lombok 的时候 发现 这个插件可以骗过编译器让编译器认为该类已经有了get和set方法那为什么不能让我们的编译器认为已经有了这些变量呢?这样就利用Lombok的源码写了这款插件!虽然过程曲折不过最终还是弄出来了,目前用在我的项目中感觉还挺好!

来看看怎么用吧!

比如这是你之前的代码:

原代码
标题

这是用了这个插件之后的代码:

后代码

 

是不是 text的定义没有了 而packageName是你的资源目录包名 value 是你layout的名称

你可以到https://github.com/ivarxiong/jaina_plugin/releases下去下载你AS对应的插件至于插件安装自行百度

然后再在gradle 中加入这些就可以了

repositories {
    maven {
        url 'https://dl.bintray.com/ivarxiong/maven/'
    }
}
compile 'com.github.jaina:jaina_api:1.0.2'
apt 'com.github.jaina:jaina_compiler:1.0.1'

 

原理也就是插件在编写代码是让ide 觉得有这些变量,而实际这些变量的产生是在编译的过程中!

插件的应用就是这样了,感觉还是挺方便的。kotlin 请忽略,因为这个做法就是来源于kotlin,用过kotlin的你懂的!

欢迎大家一起交流,以及建议,有问题可以发我邮箱450105071@qq.com 求大家在githup上给个星呗

最后,为了联盟!

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值