afinal

Android注入框架ButterKnife使用解析

给你一囗甜甜゛ 提交于 2020-08-07 16:33:44
Android开发中使用注入框架,可减少findViewById的代码量,也能让我们的代码更加整洁,有许多著名的注入框架比如,ButterKnife,Annotation,XUtils,afinal等,最开始接触的是XUtils,后面开始接触到了ButterKnife; XUtils包含了许多模块,比如数据库操作orm,网络请求,图片及视图注入,而如果仅需要做视图注入的话BK更合适些。 今天来看看ButterKnife的使用。 文章目录 1.添加依赖 2.使用 使用@BindView取代findViewById @OnClick点击事件 资源绑定 列表Adapter的ViewHolder 1.添加依赖 在项目的app/build.gradle文件中,添加如下代码 android { ... // Butterknife requires Java 8. compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'com.jakewharton:butterknife:10.2.2' annotationProcessor 'com.jakewharton

一个来自Afinal断点下载BUG的解决方案

依然范特西╮ 提交于 2019-12-09 14:47:57
作为国内第一个Android开发框架Afinal,相信有很多开发者都知道的。虽然随着Android版本的迭代,其中有一些方法有了更好的解决办法但从来没有人怀疑Afinal的价值。 最近在做一个断点下载的功能,参考了比较多的例子,无意间发现了FinalHttp.download()方法中的一个BUG。 首先跟大家介绍一下afinal中download下载的实现原理。与其他众多下载方法不同,afinal使用的是一个单线程断点下载,且其中没有数据库或额外的文件操作。那么是如何实现断点续传的呢,主要是使用了FileOutputStream的一个构造方法 , 查看api文档看到 参数append可以在一个文件的结尾处续写数据,这样就实现了断点续传功能。 知道了实现原理,我们来看代码(参数名略有改动) 你可以在这里看到完整的代码 public Object handleEntity(HttpEntity entity, EntityCallBack callback, String target, boolean isResume) throws IOException { if (TextUtils.isEmpty(target) || target.trim().length() == 0) return null; File targetFile = new File(target);

Android Afinal使用与总结

谁说我不能喝 提交于 2019-12-07 04:24:24
Afinal简介 Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用; 使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。 Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。 目前Afinal主要有四大模块: FinalDB模块:android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。 FinalActivity模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。 FinalHttp模块:通过httpclient进行封装http数据请求,支持ajax方式加载。 FinalBitmap模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法,没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2

使用android快速开发框架afinal的FinalDb操作android数据库

自古美人都是妖i 提交于 2019-12-06 14:42:55
今天给大家介绍下#afinal#来操作android的数据库sqlite。 #afinal#是一个android的orm、ioc快速开发框架,里面包含了四大功能:空间的id绑定和事件绑定功能;网络图片的显示功能(里面包含了强大的缓存框架);数据库sqlite的操作功能;http数据的读取功能(支持ajax方式读取); #afinal#开源网址:https://github.com/yangfuhai/afinal 这篇文章主要是介绍afinal的功能之一FinalDb组件,其他组件请关注我的博客吧,以后将会一一介绍: # afinal#的FinalDb组件是android的一个轻量级的orm框架,使用简单,一行代码就可以完成数据库的各种操作功能。 首先我们来创建一个测试实体类 User.java package com.devchina.ormdemo; import java.util.Date; public class User { private int id; private String name; private String email; private Date registerDate; private Double money; /////////////getter and setter 不能省略哦/////////////// public int