位置: 编程技术 - 正文

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

  • 创业投资企业可以按照其对中小高新技术企业投资额的
  • 海关完税价格计算公式
  • 物流辅助服务税率
  • 小规模企业申报时间
  • 小规模纳税人的起征点是多少
  • 缴纳契约计税依据包含增值税吗
  • 押金收不回来没钱怎么办
  • 原材料月末有余额吗
  • 会计账簿 扉页
  • 售后回购的增值税税率
  • 被列为经营异常名录有什么影响
  • 出租车公司给车都上什么保险
  • 公司向贷款公司贷款做账分录
  • 员工入职第一个月交社保吗
  • 什么时候需要交个人所得税
  • 意外死亡公司赔偿多少标准
  • 暂估费用时可以抵扣吗
  • 税局未核定印花税一直没有交怎么办
  • 印花税注册资本缴税时间
  • 房地产企业土地增值税清算案例
  • 房地产公司销售自建房怎么纳税
  • 向境外企业付外汇
  • 金税服务费会计分录
  • 公司筹建期间的劳务费怎么入账
  • 外贸企业进项税额转出会计分录
  • 商品进价销售要上税吗
  • win11最低硬件要求几代
  • 重置组策略命令
  • 会计凭证应该怎么写
  • 完美解决索尼电视arc无声音
  • 无偿划转长期股权投资
  • 代扣代缴个税手续费返还会计分录
  • 在产品定额工时怎么算
  • 向投资者分配现金股利 为什么会导致所有者权益减少?
  • 外资企业注册资本认缴制期限
  • 同一控制下企业合并报表编制
  • php实现邮件发送
  • 非高新企业自主研发,相关政策
  • 民营企业的工业项目建设-经营-转让是什么模式
  • php 安装
  • win11右键没了
  • 小微企业所得税优惠政策2023
  • 营业税金及附加税率
  • 购买的服务怎么做账
  • 待抵扣进项税额的分录
  • 个体工商户必须报税吗
  • mongodb基础知识
  • 购进车辆的会计分录
  • MySQL读写分离中间件
  • 短期借款的其它账户
  • mysql配置怎么调出来
  • 增值税发票真假怎么查询
  • 企业分期收款销售商品,即商品已经交付
  • 跨月冲红的发票怎么做会计分录
  • 应收账款的明细科目一般按照什么设置
  • 预收帐款一直挂账好吗
  • 预付账款未取得发票
  • 材料采购的流程
  • 外贸公司出口退税进项发票没及时开票有影响吗
  • 出售未到折旧年金怎么算
  • 长期借款工程验收会计分录怎么做
  • 企业所得税国税地税怎么分
  • 日记账的建账工作
  • 磁盘碎片 win7
  • xp系统无法打开网页怎么解决
  • xp系统打开服务器管理
  • win7双声道
  • windows xp的控制面板
  • windows10禁用独立显卡
  • Extjs中DisplayField的日期或者数字格式化扩展
  • js操作dom节点的方法
  • jquery的validate前端表单验证
  • nodejs xhr
  • 批处理基础知识
  • shell if语句的用法
  • 基于javascript的毕业设计
  • jqueryui dialog
  • jquery.handleerror
  • 研发人员范围
  • 国家税务总局公告2022年第9号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设