xutils的使用方法及模块二,浅谈xutil3的四大模块
2016-12-26 20:56
441 查看
图片模块:(核心方法)
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<Drawable>() {...}); x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {...}); x.image().loadFile(url, imageOptions, new Callback.CommonCallback<File>() {...});
这里简单的讲一个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<Drawable>() {...});
下面进行最重要的模块:
数据库模块:
特点:用过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<PersonTable> persons = db.findAll(PersonTable.class); Log.e("persons", persons.toString()); } catch (DbException e) { e.printStackTrace(); } }
private void query() { try { List<PersonTable> 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<DbModel> 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<PersonTable> 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<PersonTable> 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
相关文章推荐
- xutil的使用,浅谈xUtils3的基本使用方法
- android xutils 四大模块的使用
- xutils 四大模块的使用
- SPL spl_autoload_register与__autoload方法使用示例浅谈
- 浅谈Spring静态切入点使用方法
- 浅谈VB编程中网格控件的选用及使用方法
- Discuz! 7.0 模块调用脚本范例程序 - 多选下拉的缺陷以及使用方法
- 浅谈城中村宽带出租最简单的限制用户使用路由的方法,价格低了不限制路由不行
- Android系列之浅谈AndroidGallery控件使用方法详解
- 微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇
- 浅谈LogMiner的使用方法
- C#静态方法使用经验浅谈
- rails应用在passenger + nginx服务器下使用proxy_cache及proxy_cache_purge模块的方法
- 浅谈STM32的DMA模块的使用
- 浅谈Ext.PagingToolbar 的使用方法
- VC获得系统当前进程以及某进程使用的模块的方法
- 浅谈在Delphi中Dll调试方法以及怎样在Dll中使用数据模块DataModule(或表单Form)
- 凸包计算模块ConvexHull的使用方法
- 浅谈c#泛型类型变量作为操作数使用的通用解决方法