butterknife

写个绑定ButterKnife的BaseAdapter基类

亡梦爱人 提交于 2020-10-24 20:02:09
抽取baseAdapter基类 构造方法 public BaseAdapter(Context context, @LayoutRes int layout , List<T> List){ mContext=context; mList = List; mLayout = layout; notifyDataSetChanged(); } layout xml视图 list后台接口数据, 成员变量 private Context mContext; private List<T> mList; private ViewHolder viewHolder; private @LayoutRes int mLayout; getView @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder viewHolder = null; if (view == null) { view = View.inflate(mContext, mLayout, null); viewHolder = getViewHolder(); viewHolder.ViewHolder(view); view.setTag(viewHolder); } else { viewHolder =

AndroidStudio升级4.1之坑——无法启动、插件plugin不好用、代码不高亮

∥☆過路亽.° 提交于 2020-10-19 14:07:49
上班坐稳,打开AS看到studio有更新,于是就点击升级,4.1版本,看更新日志:bug修复什么什么一大堆,感觉挺好的,应该做了不少优化,结果升级完后就无法启动了,于是肠子悔青了。 一、升级4.1之后,无法启动 插件报错了。 解决办法:1.删除AndroidStudioX.X文件,一般在C盘,你自己的用户目录下。2.删除C:\Users\xxx\AppData\Roaming\Google\AndroidStudio4.1\plugins下的所有文件(要是能找到哪个插件导致启动失败可以单独删除对应的插件文件),我的是删除部分插件就可以启动的。 这样重新进入studio就可以正常启动了。 二、README.md文件无法打开: 一脸蒙圈。 解决办法:删除Markdown插件,或者激活Markdown插件。这个插件是我没升级前下载的,升级到4.1后,这个插件竟然需要激活或者购买。 三、升级4.1后很多插件不支持了,比如GsonFormat不好用了,在Plugins里面也搜索不到了。 解决办法:下载jar本地安装插件 插件下载地址 这样就可以解决了。 四、代码不高亮 Java代码全是白色 原因:还是插件的问题,butterknife zelezny竟然报错了,While loading class com.avast.android.butterknifezelezny

笑联 x mPaaS | 12 个模块,全面小程序化,如何打造真正的一次开发复用多端?

房东的猫 提交于 2020-10-14 11:04:09
这篇故事围绕着一款 App 基于 mPaaS 小程序进行改造娓娓展开。 作为国内校园服务场景最丰富的平台,笑联 App 已覆盖国内 130 所高校,服务近百万高校学生。 截止目前,笑联 App 内的 12 个业务模块目前已顺利实现小程序化。不仅获得媲美原生应用的用户体验,同时有效规避“发版周期长”、“无法快速在线修复 Bug”等弊端,实现真正的动态发布与更新能力。 项目背景 开篇先做个自我介绍,笑联 App 目前已是国内提供校园服务场景最丰富的平台,目前已覆盖 130 所高校,服务近百万高校学生。 因我们提供的服务类型囊括洗衣机、热水器、淋浴等多项功能,业务模块多元化,并且需满足每所学校在服务类型、标准方面的个性化设计,笑联 App 长期堆叠业务模块,缺乏规范的模块化设计,导致代码愈发臃肿,开发效率低下。 与此同时,随着业务的持续扩张,任一需求的迭代均需要重新发版审核,很显然如此繁琐的发版工期已无法满足高频更新的业务需要。 我们急需在技术侧找到对应的解决思路,一方面简化业务模块之间的耦合,加速日常的开发速度;另一方面架构上需实现模块化,找到动态发布与更新的解决方式。 我们针对市面上已开放的技术选型做了调研,Flutter 和 mPaaS 理论上都可以满足我们当时的选型要求,但 mPaaS 小程序动态更新的能力跟我们业务需求相吻合,避免需要频繁更新整个 App。 接入过程 回顾

Android 开发学习进程0.14

北城以北 提交于 2020-10-04 00:45:12
BindView ButterKnife 优势 绑定组件方便,使用简单 处理点击事件方便,如adapter中的viewholder 同时父组件绑定后子组件无需绑定 注意 在setcontentview之后使用,且子空间不可再使用static final属性 在不改变按钮图片大小的情况,扩大点击事件, 在较低Android版本此方法可能有问题,即src和setbackground的区别,同样可以设置背景图片,但src仅将图片资源加载,不做其他处理,而setbackground会使图片自适应与按钮大小,但也有具体属性设置,imagebutton相比常规button对图片设置更加详细,但对字处理较弱。 recyclerview设置滚动条自动将点击项滚动到中间方法## 重写linerlayout类,如下代码: public CenterLayoutManager(Context context) { super(context); } public CenterLayoutManager(Context context, int orientation, boolean reverseLayout) { super(context, orientation, reverseLayout); } public CenterLayoutManager(Context context,

笑联 x mPaaS | 12 个模块,全面小程序化,如何打造真正的一次开发复用多端?

房东的猫 提交于 2020-10-03 00:21:58
这篇故事围绕着一款 App 基于 mPaaS 小程序进行改造娓娓展开。 作为国内校园服务场景最丰富的平台,笑联 App 已覆盖国内 130 所高校,服务近百万高校学生。 截止目前,笑联 App 内的 12 个业务模块目前已顺利实现小程序化。不仅获得媲美原生应用的用户体验,同时有效规避“发版周期长”、“无法快速在线修复 Bug”等弊端,实现真正的动态发布与更新能力。 点击观看mPaaS 小程序新品发布会 > > 项目背景 开篇先做个自我介绍,笑联 App 目前已是国内提供校园服务场景最丰富的平台,目前已覆盖 130 所高校,服务近百万高校学生。 因我们提供的服务类型囊括洗衣机、热水器、淋浴等多项功能,业务模块多元化,并且需满足每所学校在服务类型、标准方面的个性化设计,笑联 App 长期堆叠业务模块,缺乏规范的模块化设计,导致代码愈发臃肿,开发效率低下。 与此同时,随着业务的持续扩张,任一需求的迭代均需要重新发版审核,很显然如此繁琐的发版工期已无法满足高频更新的业务需要。 我们急需在技术侧找到对应的解决思路,一方面简化业务模块之间的耦合,加速日常的开发速度;另一方面架构上需实现模块化,找到动态发布与更新的解决方式。 我们针对市面上已开放的技术选型做了调研,Flutter 和 mPaaS 理论上都可以满足我们当时的选型要求,但 mPaaS 小程序动态更新的能力跟我们业务需求相吻合

TYC OneWeek

霸气de小男生 提交于 2020-09-30 16:46:11
第一步 依赖 /* ButterKnife 依赖 */ implementation ‘com.jakewharton:butterknife:10.2.3’ annotationProcessor ‘com.jakewharton:butterknife-compiler:10.2.3’ /* OkHttp */ implementation("com.squareup.okhttp3:okhttp:4.8.1") implementation'com.squareup.okhttp3:logging-interceptor:4.8.1' /* RecycleView */ implementation 'com.android.support:recyclerview-v7:27.1.1' /* Gson */ implementation 'com.google.code.gson:gson:2.8.6' /* Fresco */ implementation 'com.facebook.fresco:fresco:2.3.0' 标题 /* EventBus */ implementation 'org.greenrobot:eventbus:3.2.0' /* 二维码 */ implementation 'cn.yipianfengye.android:zxing

反杀套路!阿里独家的《Android 开发相关源码精编解析》王者晋级之路,跟弯路说再见!

末鹿安然 提交于 2020-09-23 16:52:15
一、前言 Android开发人员都知道,阅读源码是非常好的学习方式,在我们日常工作中或多或少都会接触一些开源代码,比如说最常用的MMKV、ARouter、AsyncTask,这些源码的普及与应用程度远远超过我们的想象,正因为很多人使用,也在推动着源码不断地完善。 这些优秀的源码中有着多年积淀下来的精华,这些精华是非常值得我们学习的,不管我们当前是什么水平,通过反复阅读源码,能力都会有所提升,小到对源码所提供的功能上的使用更加熟练,大到使我们的程序设计更加完美优秀。 但是,纵观我们身边的人,能够做到通读源码的真的是少之又少,究其原因,不外乎以下几点。 1.阅读源码绝对算得上是一件费时费力的工作,需要读者耗费大量的时间去完成。 而作为开发人员,毕竟精力有限,实在没办法拿出太多的时间放在源码的阅读上。 2.源码的复杂性。 任何一款源码经历了多年的发展与提炼,其复杂程度可想而知。当我们阅读源码的时候,大家都知道需要通过工具来跟踪代码的运行,进而去分析程序。但是,当代码过于复杂,环环相扣绕来绕去的时候,跟进了几十个甚至几百个函数后,这时我们已经不知道自己所处的位置了,不得不再重来,但是一次又一次地,最终发现自己根本无法驾驭它,不得不放弃。 3.有些源码发展多年, 会遇到各种各样的问题,并对问题进行了解决,而其中有些问题对于我们来说甚至可以用莫名其妙来修饰,有时候根本想不出会在什么情况下发生

笑联 x mPaaS | 12 个模块,全面小程序化,如何打造真正的一次开发复用多端?

前提是你 提交于 2020-08-14 05:38:44
简介: 一款 App 基于 mPaaS 小程序如何进行改造? 这篇故事围绕着一款 App 基于 mPaaS 小程序进行改造娓娓展开。 作为国内校园服务场景最丰富的平台,笑联 App 已覆盖国内 130 所高校,服务近百万高校学生。 截止目前,笑联 App 内的 12 个业务模块目前已顺利实现小程序化。不仅获得媲美原生应用的用户体验,同时有效规避“发版周期长”、“无法快速在线修复 Bug”等弊端,实现真正的动态发布与更新能力。 项目背景 开篇先做个自我介绍,笑联 App 目前已是国内提供校园服务场景最丰富的平台,目前已覆盖 130 所高校,服务近百万高校学生。 因我们提供的服务类型囊括洗衣机、热水器、淋浴等多项功能,业务模块多元化,并且需满足每所学校在服务类型、标准方面的个性化设计,笑联 App 长期堆叠业务模块,缺乏规范的模块化设计,导致代码愈发臃肿,开发效率低下。 与此同时,随着业务的持续扩张,任一需求的迭代均需要重新发版审核,很显然如此繁琐的发版工期已无法满足高频更新的业务需要。 我们急需在技术侧找到对应的解决思路,一方面简化业务模块之间的耦合,加速日常的开发速度;另一方面架构上需实现模块化,找到动态发布与更新的解决方式。 我们针对市面上已开放的技术选型做了调研,Flutter 和 mPaaS 理论上都可以满足我们当时的选型要求,但 mPaaS

笑联 x mPaaS | 12 个模块,全面小程序化,如何打造真正的一次开发复用多端?

北城余情 提交于 2020-08-14 02:08:34
这篇故事围绕着一款 App 基于 mPaaS 小程序进行改造娓娓展开。 作为国内校园服务场景最丰富的平台,笑联 App 已覆盖国内 130 所高校,服务近百万高校学生。 截止目前,笑联 App 内的 12 个业务模块目前已顺利实现小程序化。不仅获得媲美原生应用的用户体验,同时有效规避“发版周期长”、“无法快速在线修复 Bug”等弊端,实现真正的动态发布与更新能力。 项目背景 开篇先做个自我介绍,笑联 App 目前已是国内提供校园服务场景最丰富的平台,目前已覆盖 130 所高校,服务近百万高校学生。 因我们提供的服务类型囊括洗衣机、热水器、淋浴等多项功能,业务模块多元化,并且需满足每所学校在服务类型、标准方面的个性化设计,笑联 App 长期堆叠业务模块,缺乏规范的模块化设计,导致代码愈发臃肿,开发效率低下。 与此同时,随着业务的持续扩张,任一需求的迭代均需要重新发版审核,很显然如此繁琐的发版工期已无法满足高频更新的业务需要。 我们急需在技术侧找到对应的解决思路,一方面简化业务模块之间的耦合,加速日常的开发速度;另一方面架构上需实现模块化,找到动态发布与更新的解决方式。 我们针对市面上已开放的技术选型做了调研,Flutter 和 mPaaS 理论上都可以满足我们当时的选型要求,但 mPaaS 小程序动态更新的能力跟我们业务需求相吻合,避免需要频繁更新整个 App。 接入过程 回顾

Android注入框架ButterKnife使用解析

给你一囗甜甜゛ 提交于 2020-08-07 16:33:44
Android开发中使用注入框架,可减少findViewById的代码量,也能让我们的代码更加整洁,有许多著名的注入框架比如,ButterKnife,Annotation,XUtils,afinal等,最开始接触的是XUtils,后面开始接触到了ButterKnife; XUtils包含了许多模块,比如数据库操作orm,网络请求,图片及视图注入,而如果仅需要做视图注入的话BK更合适些。 今天来看看ButterKnife的使用。 文章目录 1.添加依赖 2.使用 使用@BindView取代findViewById @OnClick点击事件 资源绑定 列表Adapter的ViewHolder 1.添加依赖 在项目的app/build.gradle文件中,添加如下代码 android { ... // Butterknife requires Java 8. compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'com.jakewharton:butterknife:10.2.2' annotationProcessor 'com.jakewharton