位置: 编程技术 - 正文

注解式框架ButterKnife的用法及在adapter中使用的优化(框架常用注解)

编辑:rootadmin
注解式框架的使用将会大大简化代码编写量,提升开发效率,主流的注解式框架有Dagger,ButterKnife,AndrodAnnotations。AndrodAnnotations配置麻烦,需要在项目清单里注册生成的子类。反射机制会占用资源内存和耗时。Dagger采用预编译技术,高效,但是对View绑定操作注解不是很方便。 ButterKnife用起来方便,使用简单,这里主要介绍它的使用。 到官网下载jar包,ButterKnife也已经托管到github上, 一.配置: 下载jar包放到libs中,配置eclipse,右键项目properties->java Compiler->Annotation Procession->勾一下Enable project special settings其他的就会自动勾上了,Factory path勾上Enable project special settings,Add jars选中刚才导入的jar包,确定即可。 二.使用: 直接上代码 public class MainActivity extends Activity { @Optional@InjectView(R.id.tv) Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); } @OnClick(R.id.tv) public void say(Button btn){ Toast.makeText(this, "你好", Toast.LENGTH_SHORT).show(); btn.setText("ButterKnife"); }}很简单吧,需要注意的是,如果click事件还有其他的组件,则声明为@OnClick({R.id.tv,R.id.tv2})这种方式即可,在使用case来进行判断,@Optional是以防没有这个id,防止崩溃使用的,其他的事件如长按,选中等也都有相关的方法。 三.对adapter的支持 之前我们自定义的adapter会写成这种形式: @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if (holder == null) { convertView = LayoutInflater.from(mcontext).inflate( R.layout.activity_main, null); holder = new ViewHolder(); holder.btn = (Button) convertView.findViewById(R.id.tv); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.btn.setText("更改"); return convertView; } class ViewHolder { Button btn; }----------------------华丽丽的分割线------------------------------- 加入ButterKnife后,adapter只需进行很小的修改即可,代码如下 @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if (holder == null) { convertView = LayoutInflater.from(mcontext).inflate( R.layout.activity_main, null); holder = new ViewHolder(convertView); holder.btn = (Button)convertView.findViewById(R.id.tv); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } holder.btn.setText("更改"); return convertView; } static class ViewHolder{ @InjectView(R.id.tv) Button btn; public ViewHolder(View view){ ButterKnife.inject(view); } } ViewHolder声明为了静态的,holder = new ViewHolder中传入了 convertView。

标签: 框架常用注解

本文链接地址:https://www.jiuchutong.com/biancheng/370972.html 转载请保留说明!

上一篇:undefined reference to '__android_log_print'(android studio1.3版本)(undefined reference to pthread)

下一篇:防止反编译所用到的proguard.cfg文件的编写(apk防止反编译)

  • 水利建设基金计费方式
  • 固定资产变卖怎么开票
  • 合同金额含税不含税
  • 补提盈余公积的分录
  • 预缴增值税如何计提
  • 如何做好服务 服务行业
  • 内部固定资产交易当期的合并处理,涉及出售
  • 全资子公司改为独立公司
  • 以前的货款用银行账户吗
  • 给非企业员工佣金怎么交税
  • 部门独立核算管理制度
  • 没有发票合法吗
  • 国税怎么查缴税明细
  • 公司车辆过户给公司
  • 所得减免优惠明细表减免项目包括几项
  • 应交税费应交增值税的三级科目有哪些
  • 怎么在电子税务局变更财务负责人
  • 小规模企业资本结构
  • 外贸企业出口退税流程图
  • 不动产权时间怎么确认
  • 企业业务招待费标准规定
  • 公司注销后股东承担责任的法律规定
  • 耕地占用税计入无形资产吗
  • mac如何重装系统win10
  • win11怎么设置最佳能效模式
  • win10怎么关闭开机磁盘自检
  • 国家高新技术企业认定评分标准
  • 商业一般纳税人税率多少
  • 华盛顿州帕卢斯心雕塑
  • 制造费用的归集
  • vue3生命周期及使用
  • Es6的新特性promise对象的设计初衷是
  • vue的ref怎么用
  • python制作chm
  • php静态方法可以被继承吗
  • php时间代码
  • sed指令可以打印文件的奇数或偶数行
  • 一般纳税人在哪里报税
  • python struct库
  • 银行询证函快递费计入什么科目
  • 不动产销售额是否为免税
  • 请问在accessdemo1
  • 购买方已抵扣怎么做分录
  • 固定资产报废后怎么处理
  • 房地产公司房屋租赁管理办法
  • 公司与公司之间可以借款吗
  • 会计制度和会计准则科目转换
  • 没有销售收入月报怎么填
  • 信用担保融资的缺点
  • mysql中一个普通ERROR 1135 (HY000)错误引发的血案
  • sql多表连接查询(详细实例)
  • mysql80安装配置教程
  • Mysql使用or如何优化
  • centos7 syslog
  • 修改window
  • calctool
  • CentOS yum php mcrypt 扩展安装方法
  • win10系统设备管理器没有蓝牙
  • win8.1专业版是哪个
  • centos 怎么用
  • Msssrv.exe - Msssrv是什么进程 有什么用
  • linux中rename命令详解
  • linux怎么配置raid
  • js中date对象
  • bootstrap栅格布局
  • ie支持es6
  • opengl怎么导入模型
  • 使用时间
  • jQuery 实现ajax传入参数含有特殊字符的方法总结
  • android中edittext
  • 基于javascript的毕业设计
  • JavaScript中的this指向
  • javascript中的对象用于
  • android10获取设备id
  • excel自定义控件
  • Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll
  • 中国税务是做什么的
  • 机构改革结束了吗
  • 税务局工作业绩
  • 即征即退进项税额分摊方法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设