位置: 编程技术 - 正文

注解式框架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防止反编译)

  • 北京增值税发票网上申领流程
  • 什么是进项税和进项税
  • 提前一个月完工奖励10万元
  • 电子发票怎么开具
  • 税务申报有什么技巧
  • 对外销售的材料的成本应计入什么账户
  • 账目不清什么意思
  • 固定资产怎么确认是不是投入使用了
  • 铁路运输发票的开具要求
  • 企业固定资产的盘亏净损失
  • 如何确定增值税以旧换新方式下销售货物的销售额
  • 信用减值损失属于什么会计要素
  • 预缴水利基金如何申报?
  • 外地派人来出差怎么报备
  • 企业应交增值税的计算公式
  • 资本公积转增资本个人股东是否纳税
  • 旅行社税收
  • 项目地预交企业所得税分录如何处理?
  • 生产企业成本会计科目
  • 税金当月计提当月缴纳
  • 以前年度损益调整属于哪类科目
  • 用人单位逾期未缴纳社会保险费可能会使用的文书
  • 联想一体机如何调节屏幕亮度
  • linux怎么操作
  • 公司刚成立多久可以注销
  • 浅谈财务风险的防范与控制
  • php怎么上传图片
  • 长期债券投资减少是计入贷方吗?
  • 固定资产清理的借贷方向表示什么
  • php 延迟
  • php socket编程
  • 施工方可以向建设单位借款么
  • centos配置php环境
  • php图片加水印实例分析
  • 选项式api和组合式api哪个好
  • echarts中的legend能被监听吗
  • CSDN接入AIGC辅助创作,对此你怎么看?
  • centos+php+coreseek+sphinx+mysql之一coreseek安装篇
  • 在vue3项目中使用vue2
  • 从业人数啥意思
  • 新法典离职
  • 资本性支出与资本性支出(基本建设)的区别
  • 航天金税服务费怎么交
  • 小型企业需要给员工买社保吗
  • 无票收入增值税怎么申报
  • 所得税退税可以不退吗
  • 无形资产的意思是
  • 常见的防暑降温药有
  • 建筑施工企业适用什么会计制度
  • 法人向公司借款如何做账
  • 固定资产相关业务
  • 免税的发票什么样子
  • 会计处理的相关知识点
  • 公司账户没有钱怎么发工资
  • 失控发票进项税转出成本调整
  • 企业多结转的成本跨年怎么冲回?
  • 虚拟机linux端mysql数据库无法远程访问的解决办法
  • mysql 5.7.33安装
  • linux ubuntu教程
  • WIN10怎么设置在平板模式下隐
  • winxp系统设备管理器
  • flashhelperservice.exe是什么程序
  • win8设备安装
  • linux系统的服务器,重启之后运算速度变慢
  • Linux系统中如何编译C程序?
  • 打开电脑显示配置windows,可是一直0%,怎么办
  • html中title的作用
  • 关于我和鬼变成家人的那件事
  • nodejs阿里云
  • Nodejs sublime text 3安装与配置
  • css网页布局中注释是什么
  • shell中判断文件是否存在
  • linux更改
  • idea 分析源码
  • jquery fadein不起作用
  • 支付给境外的咨询费需要什么资料
  • 交错了税可以退吗
  • 视同销售行为的进项税额抵扣方法?
  • 科技公司小规模纳税人
  • 芜湖地税微机编码是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设