位置: 编程技术 - 正文

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

  • 最新个人所得税扣除标准表
  • 工程服务的税率是多少?
  • 托收承付的逾期怎么处理
  • 公交车收购
  • 车辆抵押登记费用可以退回吗
  • 企业收到个体户开的发票
  • 工程项目垃圾清运项目编码
  • 企业中由特定人员所承担的一项
  • 购买设备送给客户帐务处理是怎样的?
  • 公司租用土地
  • 税后利润分配还要交税
  • 清包工简易征收文件
  • 企业多扣个税怎么处理
  • 开业好不好
  • 工资个人所得税标准表
  • 工会会费可以一年交两个单位吗
  • 金税盘发票报送状态未报送
  • 4s店以车换车怎么算的
  • 项目材料验收流程
  • window10锁屏壁纸图片在哪
  • linux如何用root用户登录
  • 是否启用税种综合申报
  • 专用发票的设计流程
  • 新成立企业什么时候有财务报表
  • 物流公司的财务能学到东西吗
  • 废料销售成本怎么计算
  • 计提待摊费用怎么记账
  • 初中英语的学科知识与能力主要考什么
  • 桌面右键个性化没有关联的程序
  • paypal授权书怎么填
  • nginx apache php
  • php转换字符编码
  • 报废的设备怎么处理
  • 企业所得税营业外收入
  • 面试官问几个问题
  • 一天撸一个财务APP系统【安卓端+前端+后端】
  • php访问路径
  • yii框架教程
  • 冷饮成本价
  • 税控盘没有报税处理这个选项
  • 报销具体流程
  • 库管和车间工人哪个好
  • 如何设置linux
  • day11-Servlet01
  • 资产减值损失是什么意思
  • 人力资源公司的税率是多少
  • 织梦如何采集文章
  • 带附件的目录
  • vue连接webapi
  • 水利基金的计税税率6
  • 企业所得税固定资产的计税基础
  • 无形资产的成本包括增值税吗
  • 工业企业土地使用税
  • 暂估入库的商品能出库吗
  • 事业单位如何计算退休工资
  • 餐饮业燃气费计入什么科目
  • 进项税认证怎么按税率统计明细
  • 3%减按1%征收增值税政策2022年
  • 企业的管理费用包括
  • 电脑重装系统步奏
  • win10系统最新版用户维护在哪
  • 电脑win7不能用怎么办
  • linux怎么查看硬件信息
  • win8怎么弄出开始菜单键
  • 怎样解决windows照片查看器无法显示此图片
  • 杂志内页广告
  • pycharm如何使用
  • python加密模块
  • 背包 ui
  • jquery提交form表单数据
  • 教你用纸折一只会跳的小兔子,非常好玩,小朋友都喜欢
  • 批处理的扩展名
  • python中删除语句
  • jquery选择父级元素
  • api/home/getmyregion
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • 税务局不动产交易缴税方案
  • 北京病退流程
  • 关于成品油的吨油换算
  • 货物运输代理服务税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设