位置: 编程技术 - 正文

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

  • 税收分类编码是唯一的吗
  • 税负是什么意思举例子说明
  • 公司优秀党员事迹材料
  • 进口消费税应该记到什么科目
  • 什么情况下可以要求员工待岗
  • 政府扶贫支出
  • 法院判罚利息怎么算
  • 财税〔2017〕39号
  • 怎么查询发票记录
  • 企业所得税视同销售怎么处理?
  • 或有事项确认资金怎么填
  • 职工福利费计提标准是多少
  • 电脑不用的情况下怎么让它关闭屏幕
  • 存货跌价准备怎么理解
  • 以前年度多计提的税金怎么调整
  • 打样费入什么科目
  • 奖励先进个人计划怎么写
  • Windows XP具有类似于Apple Aqua的秘密主题
  • 财务报表分析方法有哪些?各有什么优缺点?
  • 结转代销产品成本会计分录
  • PHP:mcrypt_enc_is_block_mode()的用法_Mcrypt函数
  • 如何通过利润表看企业收益
  • 在建工程减值准备
  • 正爬上唐娜·诺克沙滩的灰海豹,英格兰北林肯郡 (© Frederic Desmette/Minden Pictures)
  • 拔缴经费收入
  • 银行转账费用试算失败什么意思
  • Python 高性能 pdf
  • 房地产企业预缴增值税如何申报
  • 货物退回会计分录怎么做
  • 出售土地账务如何处理
  • 数字图像处理总结
  • windows where命令
  • 上个月的发票未上传成功可以删除吗
  • 企业年产值与年收入比例
  • 货款收不回来了怎么做账
  • phpcms建站教程
  • 开个人劳务发票怎么缴个人所得税
  • 固定资产一次性折旧账务处理
  • 转账支票只能去开户行买吗?
  • 发现以前年度的账错误
  • dede织梦怎么转成zblog
  • 金税盘发票报送失败怎么办
  • 融资租赁确认的具体条件
  • mysql存储语句
  • 什么叫一般
  • 企业前期开办的费用怎么做会计分录
  • 补交以前年度的城建税会计分录
  • 汇算清缴费用调减
  • 开具电费发票如何入账?
  • 报关单金额大于出口发票金额
  • 质量策划什么意思
  • 缴纳工会筹备金应该记什么科目
  • 施工图审查费计入什么会计科目
  • 新成立公司年初余额
  • 非营利医疗机构免征哪几种税
  • MySQL的存储过程保存在哪里
  • nano linux
  • ubuntu网卡命令
  • win7系统桌面设置
  • windowsxp优化教程
  • linux 禁用root
  • awk 筛选有特定字符
  • ubuntu和windows文件互传
  • 手把手教您安装软件
  • Win10预览版镜像
  • cocos jsc
  • js跨域8种解决方案
  • node管理工具
  • 一个简单的灵魂福楼拜
  • shell脚本语句
  • angular ...
  • javax.net.ssl.SSLException: hostname in certificate didn't match:
  • Python连接MySQL并使用fetchall()方法过滤特殊字符
  • jquery使用css方法添加图片边框视频教学
  • 小规模纳税人开专票可以抵扣吗
  • 境外付汇税务备案要多久
  • 安徽省工商总局
  • 国家关于农村土地流转政策
  • 工业厂房房产税什么时候开始征收
  • 新郑市税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设