Android高级_第三方框架Xutils
xutils的功能主要包括有四个部分:(1)布局视图关联;(2)图片下载与缓存;(3)网络请求;(4)数据库;
1. 使用xutils进行视图注入:
(1)在控件声明上方添加@ViewInject()传入控件的资源Id;
(2)OnCreate()中使用x.view().inject(),传入上下文对象即可;
(3)设值点击事件:
(3-1)自定义点击事件方法;访问权限为私有private void,传入View参数;
(3-2)在方法上方加入注解@Event()传入控件的资源Id;
注意:如果给多个控件设置在同一个点击事件中,在@Event()中传入int数组,数组中为不同的控件资源Id即可;
(3-3)在@Event()中传入第二个参数为事件类型,默认type=OnClickListener.class,可以修改为type=AdapterView.OnItemClickListener.class;
3.网络图片下载:
(1)添加网络访问权限,读、写外存权限;
(2)声明并实例化ImageView控件;
(3)在Activity或者Application的onCreate()中初始化xutils网络请求:调用x.Ext.init(getApplication());
(3-1)在继承Application的自定义类中onCreate()使用:
(3-2)onTerminate(),在程序退出时调用此方法;
(3-3)onLowMemeory(),在程序运行内存不足时调用此方法;
(4)设置图片参数:
(4-1)创建ImageOptions.Builder对象图片参数创建类,分别调用一下方法;
(4-2)setConfig(Bitmap.Config.RGB_565)设置图片参数;
(4-3)setUseMemCache(true)设置是否图片缓存; 注意:此处是3g缓存功能;
(4-4)setRadius(10)设置图片圆角; 注意:慎用,是对图片的处理,不是直接操作ImageView;
(4-5)setLoadingDrawableId()设置加载时的图片资源Id;
(4-6)setFailureDrawableId()设置图片下载失败时的显示资源Id;
(4-7)setIgnoreGif()设置是否忽略GIF格式的图片;false为动态显示;
(4-8)ImageOptions.Builder对象调用build(),返回ImageOptions对象,启动创建的图片参数对象;
(5)启动图片下载,调用x.image().bind()传入两个或三个参数:
参数1:要显示的ImageView控件;
参数2:图片下载路径;
参数3:(可选)ImageOptions对象的图片参数;
ImageView加载图片过程:最开始会从内存里加载图片,如果找到图片就会直接返回图片,如果没有就会从硬盘缓存里面去取图片,如果硬盘缓存还没有就会从网络加载图片;从网络加载图片,会存一份在内存中,同时存一份在外存SDcard中;
4.网络请求
(1)get下载请求:
(1-1)添加网络访问权限,读、写外存权限;
(1-2)设置请求参数:创建RequestParams对象,传入网络下载路径;
(1-3)启动下载数据:x.http().get(),传入两个参数,返回Callback.Cancelable对象:
参数1:RequestParams对象;
参数2:实现Callback.CommonCallback<String>接口的对象;
(1-4)实现Callback.CommonCallback<String>接口:重写四个方法:
方法1:onSuccess(String result):下载成功之后调用此方法;
方法2:onError():下载失败时调用此方法;
方法3:onCancelled():取消下载时调用此方法;
方法4:onFinished():下载结束时调用此方法;
(1-5)在onDestroy()中,判断Cancelable对象不为空,而且可以取消时,取消网络下载任务:Cancelable对象调用cancel()即可;
(2)post上传请求:
(2-1)清单文件中添加网络访问权限,读、写外存权限;
(2-2)设置请求参数:创建RequestParams对象,传入网络上传路径;
(2-3)RequestParams对象调用addBodyParameter(),传入键值对形式的数据;
(2-4)发送请求:x.http().post(),传入两个参数,返回Callback.Cancelable对象:
参数1:RequestParams对象;
参数2:回调监听实现Callback.CommonCallback<String>接口,在该实现该接口的类中重写四个方法:
方法1:onSuccess():上传成功时回调此方法;
方法2:onError():上传失败时回调此方法;
方法3:onCancelled():上传取消时回调此方法;
方法4:onFinished():上传结束时回调此方法;
(3)upload上传文件:在RequestParams对象中,创建上传文件路径,以键值对的形式放入RequestParams对象调用addBodyParameter()中;其他地方与上传数据相同;
(4)download下载文件
(4-1)使用download包下的项目工具;
(4-2)创建文件下载路径:Environment对象调用getExternalStorageDirectory().getAbsolutePath()得到绝对路径;
(4-3)DownloadManager对象调用getInstance()得到DownloadManager对象;
(4-4)DownloadManager对象调用startDownload(),传入六个参数:
参数1:下载路径;
参数2:保存标记;
参数3:文件路径;
参数4:是否支持断点续传;
参数5:是否支持重命名;
参数6:null空参;
5. 数据库功能:可以设置增删改查,数据库信息以Module形式存储;
(1)创建JavaBean保存数据库中的一张表信息;
在当前JavaBean前加入注解:@TABLE(),传入name=””,作为表名;
在JavaBean中的属性前加入注解:@Column(),传入id=””作为字段Id,传入name=””作为字段名;
注意:在数据库对应的JavaBean中必须有id属性,绑定注解为@Column(isId=true, name=””),否则会在运行时报空指针异常;
(2)在Activity中配置数据库信息:
(2-1)创建DbManager.DaoConfig对象;
(2-2)setDbName(),传入数据库名;
(2-3)setDbOpenListener(),传入实现DbManager.DbOpenListener接口的对象,重写onDbOpened()打开数据;
(2-4)setDbUpgradeListener(),传入实现DbManager.DbUpgradeListener接口的对象,重写onDbUpgrade()在更新数据库时使用;
(3)在需要操作数据库的地方进行增删改查操作:
(3-1)增:
创建JavaBean对象,设置数据;使用x.getDb()传入创建的DbManager.DaoConfig对象,之后调用save(),传入JavaBean对象;
(3-2)删:
1)删除整张表:x.getDb()传入创建的DbManager.DaoConfig对象,之后调用delete(),传入JavaBean.class;
2)根据Id删除单条记录:x.getDb()传入创建的DbManager.DaoConfig对象,之后调用deleteById(),传入两个参数:JavaBean.class和要删除记录的Id;
3)根据条件删除单条记录:x.getDb()传入创建的DbManager.DaoConfig对象,之后调用delete(),传入两个参数:JavaBean.class和WhereBuilder.b().and().or().exo()等数据可以传入的条件参数;
(3-3)改:
1)根据Id修改单条记录:x.getDb()传入创建的DbManager.DaoConfig对象,之后调用update(),传入两个以上参数:创建的JavaBean对象和要修改的字段名;
2)根据条件修改记录:x.getDb()传入创建的DbManager.DaoConfig对象,之后调用update(),传入三个以上参数:JavaBean.class, WhereBuilder.b()传入条件参数,保存修改后的键值对应的KeyValue对象;
(3-4)查:
x. getDb()传入创建的DbManager.DaoConfig对象,之后调用selector(),传入JavaBean.class参数,返回Selector<JavaBean>对象;之后根据该对象调用where()传入whereBuilder.b()条件参数,之后调用findAll()开始查找,返回List<JavaBean>对象为查找结果;
Android高级_第三方框架Xutils的更多相关文章
- Android高级_第三方下载工具Volley
Volley下载主要应用于下载文本数据和图片数据两个方向,下面分别介绍: 一.使用Volley开启下载,首先要做的是导包和添加权限: (1)在build.gradle文件中导入依赖包:compile ...
- 8.1 Android灯光系统_总体框架
1.框架 APP(java语言实现) ------------------------------- JNI(c++语言实现) 向上提供Java执行c函数的接口 向下访问HAL ------ ...
- Android高级_视频播放控件
一.Android系统自带VideoView控件 1. 创建步骤: (1)自带视频文件放入res/raw文件夹下: (2)声明初始化VideoView控件: (3)创建视频文件Uri路径,Uri调用p ...
- Android常用第三方框架
1.volley (截击) 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(sch ...
- 巧用第三方高速开发Android App 热门第三方SDK及框架
巧用第三方高速开发Android App 热门第三方SDK及框架 历经大半年的时间,最终是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了 项目地址:巧用第三方高速开发Android App ...
- Android开发中用到的第三方框架汇总
最近上网搜索了一些框架资料,整理了以下常用框架,希望在项目中有所帮助. 1.网络请求框架 android-async-http 该网络框架的介绍文章地址:http://www.cnblogs.com/ ...
- 巧用第三方快速开发Android App 热门第三方SDK及框架
巧用第三方快速开发Android App 热门第三方SDK及框架 历经大半年的时间,终于是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了 项目地址:巧用第三方快速开发Android App ...
- Android开发使用的常见第三方框架汇总
本文转载:http://blog.csdn.net/liuhaomatou/article/details/44857005 1.volley 项目地址 https://github.com/sman ...
- android第三方框架 xlistview 的使用
如今上拉刷新,下拉加载更多已经是浩如烟海的app的标配了 最近正好有相关的需要就去学习了一下,还是那句老话凡事都靠自己来 搞实在不是一件好事,费时费力不说可能还是在做无用功,不过自己研究学习 还是很有 ...
随机推荐
- Ubuntu中安装Sublime Text 3并安装Package Control
最近在学习Linux的使用,并在Linux中进行python开发练习.在学习过程中,了解到Sublime Text3是一款备受开发者推崇的代码编辑器,因此在Ubuntu中安装了Sublime Text ...
- ansible 角色登陆
用ansible 来管理远程的主机,最大的好处是方便,ansible不用在远程的主机上安装ansible的客户端,ansible只要能通过ssh连接上远程主机就 能对它进行管理.也就是说ansible ...
- Qt5——从零开始的Hello World教程(Qt Creator)
简单Qt教程 一.打开Qt Creator 本次的目的是用Qt Creator建立一个Hello World项目,在安装Qt之后,首先要打开Qt Creator. 就是它啦,打开后会显示如下页面. 二 ...
- Hibernate关联关系映射之一对多双向映射
一对多映射有两种,一种是单向的,另一种的多向.我们一般是使用双向的,所以我就写写一对多的双向映射. 还是想昨天一样举个例子来说明:作者<===>作品,还是对数据进行增删改查. 我们一般是把 ...
- 【sh文件权限】无法启动tomcat -bash: ./startup.sh: Permission denied
今天在Linux上启动Tomcat,结果弹出:-bash: ./startup.sh: Permission denied 的提示. 这是因为用户没有权限,而导致无法执行, 用命令chmod 修改一下 ...
- SPA页面初试
之前一直很好奇,SPA应用到底是怎么实现的,昨天无意间看到了有一篇介绍的文章,就想着来试一下水(以下根据我的理解所写,可能会让你看的云里雾里,如果想加深了解,最好先了解下window.location ...
- windows下使用python操作redis(Visual Studio Code)
1.编辑工具: Visual Studio Code(windows环境) 2.redis服务器:这里用了远程连接,需要配置redis.conf. (1)注释 #bind 127.0.0.1 (2)设 ...
- Git(二)_基本命令
0. 开始查看所有配置:git config --listgit config --global user.name "runoob"git config --global use ...
- 华中农业大学第五届程序设计大赛网络同步赛-D
Problem D: GCD Time Limit: 1 Sec Memory Limit: 1280 MBSubmit: 179 Solved: 25[Submit][Status][Web B ...
- python-备忘录模式
源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 一个成熟的软件应当允许用户取消不确定的操作或者从错误的状态中恢复过来.复制,粘体 ...