Xutils3.3.26使用详解

先从下图中大致了解下Xutils主要的一些功能:(图片来自互联网)偷笑

随后在看看在Android Studio中的配置吧:(图片依然来自互联网)安静


现在才开始正文能 别急

做事一定要有条理,所以 我们就一条一条来萝莉惊恐(罗列);

数据库模块:

创建数据库:
DbManager.DaoCinfig daoConfig=new DbManager.DaoCinfig()
.setDbName(string),不设置的话默认是xutil的DB
.setTableCreateListener(Table)//表创建的监听
setAllowTransaction(bool)是否允许事务,默认true;
//数据库路径,不设置的话 默认在安装路径
.setDbDir(file dir)
.setDopenListener()//数据库打开的监听
.setDbUpfradeListener()//数据库更新监听
.setDbVersion(int)//设置数据库版本号 ;
DbManager db=x.getDb(daoConfig);
-------------------------------
xutils数据库模块使用了ORM技术,不需要写sql语句;
db.save(entity);可以传入Liset<bean>集合//会将这个对象自动映射成表;
【为类添加@Table注解(name="_taleName",onCreated="")当表第一次创建时onCreated调用(可以在创建是添加数据)】
@Column(name="字段名",isID="是否主键bool",autoGen="是否自增长",property="约束(not null)")
创建表时,需要该entity有2个构造,如果没有将创建失败;
删除数据库:db.dropDb();
删除表:
WhereBuilder b=WhereBuilder.b();
b.expr("id"="1");
db.delete(bean.class,b);
查询数据:
db.findFirst(Class <T>);//查询第一条数据
db.findAll();//查询所有
db.findDbModelAll(SqlInfo);
db.findDbModelFirst(SqlInfo);
db.dinfbyId(Class<T>,Object);//通过ID 的方式查询;
//带查询条件
db.selector(bean.class).出方法;
修改表中数据:
db.update(Class<>,whereBuilder,keyvalue);
修改第一条:
bean bean=db.findFirst(Class <T>);
b.setName("xx");
db.update(b,"修改的列名","");
修改其他数据:
WhereBuilder b=WhereBuilder.b();
b.and("id","=",bean.getId());
KeyValue name=new KeyValue("name",“xx);
db.update(bean.class,b,name);
修改其他数据:
bean.setName("xxx");
db.saveOrUpdate(bean);
删除表中的数据:
db.delete(bean.class);//删除表中所有的数据
db.delete(bean.class,wb(添加条件));
一对多的关系 :一对多关系   这张图就能诠释了吧;这次图片不是来源于网络了 大笑


返回DeModel的查询:
sql语句不建议写select * ....
DbModel:是以key,value的形式将查询的字段保存起来 返回给我们;

=========================================偷笑==================偷笑====================偷笑========================================

网络模块:

Callback.Cancelable cancelable=x.http().get(par){};
1.执行cancelable.cancel();时,方法中的onCancelled(xx);才会被执行;
2.onError(xx,xx);中的bool为false 说明异常信息 不是来源于回调;
其他请求方式:
x.http().request(HttpMethod.xxxx,par,calback);
文件:
par.setMultpart(true);//启用表单
par.addBodyParamter("file",new File(path));
x.http().post(par,callback);
下载:
new par(url);
par.setSaveFilePath();//设置文件下载的目录(会自动创建);
par.setAutoRename(true);//true时,会自动设置文件的名字;
x.http().post(par, Progressallable<File>);
1.onWaiting()在网络请求之前被调用;
2.onStarted();网络请求开始的时候;
3.onLoading();下载时不断调用;
缓存:
par.setCacheMaxAge(ms);//设置缓存时间
x.http().get(par,CacheCallback<String>());
1.onCache(String result:缓存的内容);如果返回true:相信本地缓存;及在缓存时间内再次请求,加载缓存数据 不在访问网络;
图片模块:

x.image().bind(iv.url);
x.image().bind(iv.url,ImageOptions);
x.image().bind(iv.url,CommonCallback);
x.image().bind(iv.url,ImageOptions,CommonCallback);

ImageOptions options=new ImageOptions
.Bilder()
//设置图片的质量
.setConfig(Config.RGB.565)
//设置为true时  图片加载有个淡入效果
.setFadeIn(bool)
.setCrop(bool)和.setSize() 成对使用 Crop为true时,size生效
//true:展示为圆形
.setCirculat(bool)
.setAnimation(animation)
//true:待展示图片 将旋转图片
.setAutoRotate(bool)
//加载失败时的图片
.setFailureDrawable(drawable)
//图片加载过程中显示的图片
.setLoadingDrawableId(int)
//默认为true,为true时 显示加载过程中的图片
.setForceLoadingDrawable(bool)
//是否忽略GIF图,默认为忽略
.setIgnoneGif(bool)
//网略请求图片时,可以通过ParamsBuilder,添加参数
.setParamsBUilder(ParamsBuilder)
//设置加载失败 或者成功图片的Type
.setPlaceholderScaleType(ScaleType)
//设置拐角的弧度
.setRadius(int)
//true;图片为正方形
.setSquare(bool)
//设置是否使用缓存 默认为true
.setUserMemCache(bool)

最后的注解模块呢   分为activity、fragment、viewholder、event,这么几块;大家自寻探索吧;

下面是一个封装后的Xutils工具类

public class XutilsTool {
   /**
    * 发送get请求
    * @param <T>
    */
   public static <T> Cancelable Get(String url, Map<String,String> map, CommonCallback<T> callback){
      RequestParams params=new RequestParams(url);
      if(null!=map){
         for(Map.Entry<String, String> entry : map.entrySet()){
            params.addQueryStringParameter(entry.getKey(), entry.getValue());
         }
      }
      Cancelable cancelable = x.http().get(params, callback);
      return cancelable;
   }
   
   /**
    * 发送post请求
    * @param <T>
    */
   public static <T> Cancelable Post(String url, Map<String,Object> map, CommonCallback<T> callback){
      RequestParams params=new RequestParams(url);
      if(null!=map){
         for(Map.Entry<String, Object> entry : map.entrySet()){
            params.addParameter(entry.getKey(), entry.getValue());
         }
      }
      Cancelable cancelable = x.http().get(params, callback);
      return cancelable;
   }
   /**
    * 上传文件
    * @param <T>
    */
   public static <T> Cancelable UpLoadFile(String url, Map<String,Object> map, CommonCallback<T> callback){
      RequestParams params=new RequestParams(url);
      if(null!=map){
         for(Map.Entry<String, Object> entry : map.entrySet()){
            params.addParameter(entry.getKey(), entry.getValue());
         }
      }
      params.setMultipart(true);
      Cancelable cancelable = x.http().get(params, callback);
      return cancelable;
   }

   /**
    * 下载文件
    * @param <T>
    */
   public static <T> Cancelable DownLoadFile(String url, String filepath, CommonCallback<T> callback){
      RequestParams params=new RequestParams(url);
      //设置断点续传
      params.setAutoResume(true);
      params.setSaveFilePath(filepath);
      Cancelable cancelable = x.http().get(params, callback);
      return cancelable;
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值