xUtils3.0 - Android快速开发框架

xUtils3.0

1.Android快速开发框架
2.xUtils中拥有四大模块
    ① View 
    ② Http
    ③ ImageLoader
    ④ DataBase

使用方法

1.添加依赖,通过open module settings进行依赖添加
2.声明权限,需要网络请求添加internet权限,需要读取文件,缓存文件,添加sd卡写权限
3.初始化:首先自定义Application,定义之后去Manifest文件中的application标签下的name属性上进行注册。注册之后重写我们Application的onCreate方法,在onCreate中进行框架的初始化。
x.Ext.init(Application);

View

1.在Activity中使用:
    ① 在onCreate中进行反转注入 x.view().inject(Activity)
    ② 设置布局使用 @ContentView(layoutResId) 使用位置在我们的Activity类上面
    ③ 声明View使用 @ViewInject(R.id.xxx) 使用位置在我们的类中,成员变量。
    ④ 事件注入使用 @Event(value = R.id.xxx,type= xxxListener.class)
        value 支持数组 

    !!! Action:事件注入方法必须私有
                  参数列表必须与指定type对应的监听器中的函数的参数列表保持一致
                  方法名最好以onEvent或Click结尾
                  有返回值的监听,要返回对应的返回值。

2.在Adapter中使用:
    ① 在ViewHolder中对声明的View使用 @ViewInject 进行注入
    ② 在getView方法的实例化holder之后调用 x.view().inject(holder,converView)

3.在Fragment中进行使用:
    ① 在onCreateView中使用 x.view().inject(Fragment,LayoutInflater,container)注入
    ② 在onViewCreated判断在onCreateView中是否注入了,如果注入不做任何操作,如果没有注入,那我们就注入一下 x.view().inject(fragment,view)
    ③ 布局注入,和Activity一样,在类上面使用@ContentView(layoutResId)
       view注入和Activity一样, 在Fragment中使用@ViewInject(R.id.xxx) 成员变量
       事件注入和Activity一样,@Event(value=R.id.xxx,type= xxxListener.class)

Http

1.简单使用
    ① 先获取一个RequestParams对象,直接RequestParams params = new RequestParams(url)
        如果有参数,可以调用params.addBodyParamter(key,value) key是String,value支持Sting,File,InputStream,byte[]
        也可以调用params.addQueryStringParameter(key,value) key是String,value也是String
    ② 如果是一个简单的使用,如果是get直接调用 x.http().get(parmas,new CallBack.CommenCallBack<String>{})
    ③ 如果是post直接调用x.http().post(parmas,new CallBack.CommenCallBack<String>{})
    ④ 我们的CallBack有四个回调函数:onSuccess,onCanceled,onError,onFinished。
        无论哪种情况都会调用onFinished,如果我们请求成功会调用onSuccess,如果我们请求失败,或是发生错误
        会回调onError,如果我们的请求被取消,会回调onCanceled

2.带取消的使用
    基本使用和简单使用并无区别,唯一需要注意的是将我们x.http.get()或x.http().post()对应的对象获取过来
    使用Callback.Cancelable获取过来,当我们想取消网络请求的时候,调用cancel方法。

3.自定义网络请求
    ① 新创建一个类,继承自RequestParams,使用@HttpRequest注解修饰我们的类,指定host= "服务器地址"
        path="路径(服务器中的相对路径)"
    ② 使用的时候依然直接new 出来,调用x.http().get() or x.http().post()
    ③ 如果我们的请求拥有参数,可以使用 '简单使用' 的添加参数的方法。也可以使用在自定义类中直接持有请求的字段(参数),在我们实例化之后,直接给对象赋值
    ④ 创建一个类,实现ResponseParse,里面有两个方法checkResponse(),parse()。我们一般会在check对内容进行一个简单的过滤。一般在parse中进行解析操作,默认支持json,xml解析,其余定制解析需要研究源码。
    ⑤ 为我们的返回值创建模型类,在类上使用@HttpResponse注解,注解 parse = 自定义parse.class
    ⑥ 使用的时候,使用的时候将CallBack.CommenCallBack<T> 中的泛型T指定为我们添加注解的模型类。

Image

使用起来比较简单:
    x.image().bind(iamgeView,url)
但是我们很多时候需要自定义配置,ImageOptions
    x.image().bind(imageView,url,imageOptions)

简单介绍一下imageOptions
    ImageOptions options = new ImageOptions.Builder()
                                // 设置图片渐变
                                .setFadeIn(true)
                                // 设置使用缓存
                                .setUseMemCache(true)
                                // 设置加载过程图片
                                .setLoadingDrawableId(R.mipmap.ic_launcher)
                                // 设置加载失败的图片
                                .setFailureDrawableId(R.mipmap.ic_launcher)
                                // 设置圆形
                                //.setCircular(true)
                                // 设置圆角 TODO: 圆角最好和方形属性配合使用
                                .setRadius(DensityUtil.px2dip(20))
                                // 设置方形
                                .setSquare(true)
                                // 设置动画
                                .setAnimation(AnimationUtils.loadAnimation(context,R.anim.image_in))
                                .build;

DataBase

基本使用
① 首先我们需要获取一个DbManager,DbManager dbManager = x.getDb(DaoConfig),实例化的时候需要一    个DaoConfig的参数。
② 实例化一个DaoConfig,直接new DaoConfig,DaoConfig可以配置数据库的 名字,版本,存储位置,是否支   持事物,还有打开监听,升级监听,创建监听
③ 当拥有DbManager对象之后,我们可以使用DbManager进行数据的增删改查。

注意:
① 我们操作的对象需要添加注解在model上,使用@Table(name = "表名")
② 在我们需要存到数据库中的字段上面添加@Colunms(name = "字段名",isId = boolean,autoGen =  boolean),通常我们只使用name,如果是id的或者将一个唯一的属性作为id的,需要将isId设置为   true,想要id为自己设置的数值,需要将autoGen设置为false,为true的时候自动生成,自增。

1.存储数据:
    DbManager.save(Object)

2.查询数据
    DbManager.selector(Class<?>)  获取指定表中的数据
            .where(WhereBuilder) 获取条件
            .or(WhereBuilder) 满足其中一个条件即可
            .and(WhereBuilder) 同时满足的条件
            .orderBy("columns",boolean) 根据某一字段进行排序,boolean为false或者不填为升序,    反之降序
            .limit(number) 限制获取条数,如果满足条件的超过我们的限制,只获取我们限制的条数,如   果满足条件的没有达到限制条数,则为实际条数
            .findAll()。将所有符合前面限制条件的对象获取出来。

3.更新数据
    DbManager.update(Class<?>,WhereBuilder,KeyValue)
    ① 更新的对象对应的Class,实际对应的是数据库中的表
    ② 更新条件
    ③ 更新的字段,key-value形势,key-数据库中的字段,value-我们替换的内容

4.删除数据
     DbManager.delete(Class<?>,WhereBuilder)
    ① 删除对象对应的Class,实际对应的是数据库中的表
    ② 删除条件 

5.核心
    WhereBuilder
    ① 实例化 WhereBuilder.b(param1,param2,param3)
    ② param1 字段,对应表中的字段
    ③ param2 操作符, " < > = like...."
    ④ param3 值value,我们字段对应的值

你可能感兴趣的:(开发框架,xutils)