xutils的使用方法及模块二,浅谈xutil3的四大模块

图片模块:(核心方法)

x.image().bind(imageView, url, imageOptions); x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions); x.image().bind(imageView, "assets://test.gif", imageOptions); x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback() {...}); x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {...}); x.image().loadFile(url, imageOptions, new Callback.CommonCallback() {...});


这里简单的讲一个 imageOptions这个参数,其他的也没什么好说的,一些图片控件,url,路径,不同的方法加载图片而已
ImageOptions options=new ImageOptions.Builder() //设置加载过程中的图片 .setLoadingDrawableId(R.drawable.ic_launcher) //设置加载失败后的图片 .setFailureDrawableId(R.drawable.ic_launcher) //设置使用缓存 .setUseMemCache(true) //设置显示圆形图片 .setCircular(true) //设置支持gif .setIgnoreGif(false) .build();


如果要对图片进行操作,可以使用带有回调的方法,建议:
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {...});





下面进行最重要的模块: 数据库模块:
特点:用过ormlite的都应该会很快的入手,在本模块中就是基于orm类似的方式实现的:直接上代码,进行增删改查操作, 相信对ORM框架有过了解的人,大概都知道只要创建一个JavaBean对象,在类的上面和属性的上面添加注释标签,这样就能生成一个表。下面带大家看一下XUtils3的实体bean的写法:
1.在类名上面加入@Table标签,标签里面的属性name的值就是以后生成的数据库的表的名字
2.实体bean里面的属性需要加上@Column标签,这样这个标签的name属性的值会对应数据库里面的表的字段。
3.实体bean里面的普通属性,如果没有加上@Column标签就不会在生成表的时候在表里面加入字段。
4.实体bean中必须有一个主键,如果没有主键,表以后不会创建成功,@Column(name=”id”,isId=true,autoGen=true)这个属性name的值代表的是表的主键的标识,isId这个属性代表的是该属性是不是表的主键,autoGen代表的是主键是否是自增长,如果不写autoGen这个属性,默认是自增长的属性。
@Table(name="person") public class PersonTable { @Column(name="id",isId=true,autoGen=true) private int id; //姓名 @Column(name="name") private String name; //年龄 @Column(name="age") private int age; //性别 @Column(name="sex") private String sex; //工资 @Column(name="salary") private String salary; public int getId() { return id; }public void setId(int id) { this.id = id; }public String getName() { return name; }public void setName(String name) { this.name = name; }public String getSex() { return sex; }public void setSex(String sex) { this.sex = sex; }public int getAge() { return age; }public void setAge(int age) { this.age = age; }public String getSalary() { return salary; }public void setSalary(String salary) { this.salary = salary; }@Override public String toString() { return "PersonTable [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", salary=" + salary + "]"; } }


1.setDbName 设置数据库的名称 2.setDbDir 设置数据库存放的路径 3.setDbVersion 设置数据库的版本 4.setAllowTransaction(true) 设置允许开启事务 5.setDbUpgradeListener 设置一个版本升级的监听方法 那么具体我们什么时候创建的表呢?如果我们单纯的调用XUti.getDaoConfig()方法是不能够创建PersonTable这个实体对应的person这张表的,那么如何创建表呢? 只需要一下几步: 1.DaoConfig daoConfig=XUtil.getDaoConfig(); 2.DbManager db = x.getDb(daoConfig);


//封装一个创建表的封装,拿到daoconfig对象
public class XUtil { static DbManager.DaoConfig daoConfig; public static DaoConfig getDaoConfig(){ File file=new File(Environment.getExternalStorageDirectory().getPath()); if(daoConfig==null){ daoConfig=new DbManager.DaoConfig() .setDbName("shiyan.db") .setDbDir(file) .setDbVersion(1) .setAllowTransaction(true) .setDbUpgradeListener(new DbUpgradeListener() { @Override public void onUpgrade(DbManager db, int oldVersion, int newVersion) {} }); } return daoConfig; } }

插入操作:
private void insert() { try { PersonTable person=new PersonTable(); person.setName("小丽"); person.setAge(19); person.setSex("woman"); person.setSalary(4000); db.save(person); //db.saveOrUpdate(person); //db.saveBindingId(person); } catch (DbException e) { e.printStackTrace(); } }


查询:
private void query(){ try { PersonTable person = db.findById(PersonTable.class, "2"); Log.e("person",person.toString()); } catch (DbException e) { e.printStackTrace(); } }


private void query() { try { PersonTable person = db.findFirst(PersonTable.class); Log.e("person", person.toString()); } catch (DbException e) { e.printStackTrace(); } }


private void query() { try { List persons = db.findAll(PersonTable.class); Log.e("persons", persons.toString()); } catch (DbException e) { e.printStackTrace(); } }


private void query() { try { List【xutils的使用方法及模块二,浅谈xutil3的四大模块】 persons = db.selector(PersonTable.class).where("age", ">", 30).and("sex", "=", "man").findAll(); for(PersonTable person:persons){ Log.e("person",person.toString()); } } catch (DbException e) { e.printStackTrace(); } }



private void query() { try { DbModel model = db.findDbModelFirst(new SqlInfo("select * from person")); Log.e("age", model.getString("age")); } catch (DbException e) { e.printStackTrace(); } }


private void query() { try { List persons = db.findDbModelAll(new SqlInfo("select * from person where age > 25")); for(DbModel person:persons){ Log.e("name", person.getString("name")); } } catch (DbException e) { e.printStackTrace(); } }

修改:
private void update() { try{ PersonTable person = db.findById(PersonTable.class, 1); person.setAge(25); db.update(person, "age"); }catch(Exception e){ e.printStackTrace(); } }


private void update() { try { List persons = db.findAll(PersonTable.class); for(PersonTable person:persons){ person.setSalary(6000); db.update(person, WhereBuilder.b("sex", "=", "man"), "salary"); } } catch (Exception e) { e.printStackTrace(); } }


private void update() { try { List persons = db.findAll(PersonTable.class); for(PersonTable person:persons){ person.setSalary(6000); person.setAge(40); db.update(person, WhereBuilder.b("sex", "=", "man"), "salary","age"); } } catch (Exception e) { e.printStackTrace(); } }


删除:
private void delete() { try { db.deleteById(PersonTable.class, 5); } catch (DbException e) { e.printStackTrace(); } }



private void delete() { try { PersonTable person = db.selector(PersonTable.class).where("name", "=", "骆驼").findFirst(); db.delete(person); } catch (DbException e) { e.printStackTrace(); } }


private void delete() { try { db.delete(PersonTable.class); } catch (DbException e) { e.printStackTrace(); } }


private void delete() { try { db.delete(PersonTable.class, WhereBuilder.b("sex", "=", "woman").and("salary", "=", "5000")); } catch (DbException e) { e.printStackTrace(); } }


private void delete() { try { db.dropTable(PersonTable.class); } catch (DbException e) { e.printStackTrace(); } }


db.dropDb();


其他模块地址:
http://blog.csdn.net/qq_35681180/article/details/53888853



    推荐阅读