位置: 编程技术 - 正文

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

  • 回退税款所属期后怎么返回
  • 河北金税盘
  • 以公司名义买50万的车可以省多少钱
  • 缴纳增值税会计处理
  • 供应商给的折扣比发票少怎么做账
  • 长期待摊费用可以抵扣吗
  • 长期待摊费用摊销表
  • 长期挂账其他应付款违反了哪项制度
  • 收入跨期审计调整分录如何滚调
  • 关于预计负债应付退货款明细科目
  • 企业维修厂房购进材料怎样做账务处理?
  • 子公司向母公司借款对合并报表的影响
  • 销售退回跨年所得税如何做账?
  • 营改增阶段
  • 国税里发票采集中的税控机动车发票是指什么发票?
  • 纳税人所在地为
  • 车辆处置入账价值包括哪些
  • 商品流通企业采购商品的进货费用金额较小的
  • 税款所属期是什么意思举例子
  • 外币借款利息汇兑差额计算公式
  • 定期存款利息收入现金流
  • 企业所得税季报怎么申报
  • 个人将房产无偿赠与他人应交个人所得税吗
  • linux系统怎么更改主机名
  • 购买商品接受劳务的现金流包括哪些
  • 修理费应该计入什么费用
  • 一般纳税人资质证明文件去哪打印
  • 商业承兑汇票提示承兑期限
  • 前端实现拖拽拉动图片
  • 投资收益会计准则
  • c++~怎么用
  • php查询sqlserver数据库
  • zabbix server端口
  • vue项目移动端怎么做适配
  • yolov4tiny网络结构
  • 持有至到期投资账务处理
  • 滚动条基本样式有哪些
  • typescript some
  • 如何计提所得税费用科目
  • wordpress运行缓慢
  • python字典按要求
  • js数组entries
  • 卸载sql server 2008
  • 费用票有什么用处
  • 错账调整分录
  • 只开发票没有合同也要印花税吗
  • 退税流程怎么操作个人所得税2022
  • 现金流量表中的现金流量包括哪些
  • 增值税专用发票几个点
  • 固定资产卡片账是什么
  • 税法税前扣除
  • 发票没有纳税人识别号怎么重开
  • 以货换货什么意思
  • 长期股权投资的账务处理
  • 租农民土地
  • 境外分回的股息在本国抵免限额怎么算
  • 退回的增值税税费怎么做会计记录
  • 减免税款属于政府补助利得吗
  • 对公账户的钱可以花吗
  • 减免税款借方余额
  • sql server如何
  • windows2003企业版sp2密钥
  • mac系统小技巧
  • ubuntu 20.04拨号上网
  • ubuntu16.04添加用户
  • sxs.exe病毒
  • windows7开始菜单不见了
  • win7把声音设备禁用了怎么要回来
  • windows8.1怎么升级
  • windows10周年更新
  • KbdTray.exe - KbdTray是什么进程 有什么作用
  • windows应用图标
  • unity游戏人物选择
  • cssimport
  • 移动move命令的操作步骤是
  • javascript基于什么的语言
  • 理解Python中的变量
  • js实现@功能
  • 皖事通新农合缴费征收方式是什么?
  • 钟楼在西安的哪里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设