Xutils3.3.26 使用详解和个人笔记

2,122 阅读3分钟
原文链接: blog.csdn.net

先从下图中大致了解下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集合//会将这个对象自动映射成表;

【为类添加@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 );//查询第一条数据

db.findAll();//查询所有

db.findDbModelAll(SqlInfo);

db.findDbModelFirst(SqlInfo);

db.dinfbyId(Class,Object);//通过ID 的方式查询;

//带查询条件

db.selector(bean.class).出方法;

修改表中数据:

db.update(Class<>,whereBuilder,keyvalue);

修改第一条:

bean bean=db.findFirst(Class );

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);

1.onWaiting()在网络请求之前被调用;

2.onStarted();网络请求开始的时候;

3.onLoading();下载时不断调用;

缓存:

par.setCacheMaxAge(ms);//设置缓存时间

x.http().get(par,CacheCallback());

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

   /**
    * 下载文件
    * @param 
    */
   public static  Cancelable DownLoadFile(String url, String filepath, CommonCallback callback){
      RequestParams params=new RequestParams(url);
      //设置断点续传
      params.setAutoResume(true);
      params.setSaveFilePath(filepath);
      Cancelable cancelable = x.http().get(params, callback);
      return cancelable;
   }
}