xUtils的使用(二)
来源:互联网 发布:淘宝crm 编辑:程序博客网 时间:2024/06/06 14:07
图片加载模块:
## DbUtils使用方法:
```Java
DbUtils db = DbUtils.create(this);
User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
user.setEmail("wyouflf@qq.com");
user.setName("wyouflf");
db.save(user); // 使用saveBindingId保存实体时会为实体的id赋值
// 查找
Parent entity = db.findById(Parent.class, parent.getId());
List<Parent> list = db.findAll(Parent.class);//通过类型查找
Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test"));
// IS NULL
Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null));
// IS NOT NULL
Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null));
// WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset
List<Parent> list = db.findAll(Selector.from(Parent.class)
.where("id" ,"<", 54)
.and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30))
.orderBy("id")
.limit(pageSize)
.offset(pageSize * pageIndex));
// op为"in"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3}));
// op为"between"时,最后一个参数必须是数组或Iterable的实现类(例如List等)
Parent test = db.findFirst(Selector.from(Parent.class).where("id", "between", new String[]{"1", "5"}));
DbModel dbModel = db.findDbModelAll(Selector.from(Parent.class).select("name"));//select("name")只取出name列
List<DbModel> dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)"));
List<DbModel> dbModels = db.findDbModelAll(sql); // 自定义sql查询
db.execNonQuery(sql) // 执行自定义sql
图片加载模块:
## BitmapUtils 使用方法
```java
BitmapUtils bitmapUtils = new BitmapUtils(this);
// 加载网络图片
bitmapUtils.display(testImageView, "http://bbs.lidroid.com/static/image/common/logo.png");
// 加载本地图片(路径以/开头, 绝对路径)
bitmapUtils.display(testImageView, "/sdcard/test.jpg");
// 加载assets中的图片(路径以assets开头)
bitmapUtils.display(testImageView, "assets/img/wallpaper.jpg");
// 使用ListView等容器展示图片时可通过PauseOnScrollListener控制滑动和快速滑动过程中时候暂停加载图片
listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));
listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true, customListener));
图片加载实例:
- public class ImageActivity extends AppCompatActivity {
-
- @ViewInject(value = R.id.img)
- private ImageView iv;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_image);
- x.view().inject(this);
- }
- @Event(value = {R.id.btn_load,R.id.btn_asset,R.id.btn_network})
- private void onClick(View view){
-
- switch (view.getId()) {
-
- case R.id.btn_asset:
- ImageOptions options = new ImageOptions.Builder()
- .setIgnoreGif(false)
- .setLoadingDrawableId(R.mipmap.ic_launcher)
- .setFailureDrawableId(R.mipmap.ic_launcher)
- .setUseMemCache(true)
- .build();
- x.image().bind(iv,"assets://cat.gif",options);
- break;
-
- case R.id.btn_load:
- options = new ImageOptions.Builder().setIgnoreGif(false)
- .setLoadingDrawableId(R.mipmap.ic_launcher)
- .setFailureDrawableId(R.mipmap.ic_launcher)
- .setUseMemCache(true)
- .build();
-
- x.image().bind(iv,new File("/sdcard/test.gif").toURI().toString(),options);
- break;
-
- case R.id.btn_network:
- String url = "http://img.my.csdn.net/uploads/201407/26/1406382922_6166.jpg";
- options = new ImageOptions.Builder().setLoadingDrawableId(R.mipmap.ic_launcher)
- .setFailureDrawableId(R.mipmap.ic_launcher)
-
- .setRadius(20)
- .setFadeIn(true)
- .setAutoRotate(true)
- .setUseMemCache(true)
- .build();
-
-
- x.image().bind(iv, url, options, new Callback.CommonCallback<Drawable>() {
- @Override
- public void onSuccess(Drawable result) {
- BitmapDrawable bd = (BitmapDrawable) result;
- Bitmap bm = bd.getBitmap();
-
- }
- @Override
- public void onError(Throwable ex, boolean isOnCallback) {
-
- }
- @Override
- public void onCancelled(CancelledException cex) {
-
- }
- @Override
- public void onFinished() {
-
- }
- });
- break;
- }
- }
- }
数据库使用实例:- public class DatabaseActivity extends AppCompatActivity {
-
- @ViewInject(value = R.id.id_database_lv)
- private ListView lv;
-
- private DbManager manager;
- private DbManager.DaoConfig config;
-
- private List<PersonTable>list;
- private DatabaseAdapter adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_database);
- x.view().inject(this);
-
- config = DBUtils.getDaoConfig(this);
-
- manager = x.getDb(config);
- list = new ArrayList<>();
- if (queryAll()!=null){
- list.addAll(queryAll());
- }
- adapter = new DatabaseAdapter(list,this);
- lv.setAdapter(adapter);
-
- }
-
-
-
-
- public List<PersonTable> queryAll(){
- try {
- List<PersonTable>list = manager.findAll(PersonTable.class);
- return list;
- } catch (DbException e) {
- e.printStackTrace();
- }
- return null;
- }
-
-
-
-
- public void insertData(PersonTable person){
- try {
- manager.save(person);
-
-
- } catch (DbException e) {
- e.printStackTrace();
- }
- }
-
-
-
- public void updataData(int id){
- PersonTable person;
- try {
- person = manager.findById(PersonTable.class,id);
- person.setName("狗丹");
- manager.update(person,"name");
- } catch (DbException e) {
- e.printStackTrace();
- }
-
- }
- @Event(value = {R.id.id_insert_btn,R.id.id_update_btn,R.id.id_delete_btn})
- private void onClick(View view){
- switch (view.getId()) {
- case R.id.id_insert_btn:
- Toast.makeText(DatabaseActivity.this,"点击了插入",Toast.LENGTH_LONG).show();
- insertData(new PersonTable(1,"cindy",23,"女",4500));
- insertData(new PersonTable(2,"tom",24,"男",8500));
- insertData(new PersonTable(3,"jack",25,"男",10000));
- insertData(new PersonTable(4,"rose",26,"女",9500));
- insertData(new PersonTable(6,"张三",25,"男",10000));
- insertData(new PersonTable(7,"狗剩",26,"女",9500));
- list.clear();
- list.addAll(queryAll());
- adapter.notifyDataSetChanged();
- break;
-
- case R.id.id_update_btn:
- updataData(6);
- list.clear();
- list.addAll(queryAll());
- adapter.notifyDataSetChanged();
- break;
- case R.id.id_delete_btn:
-
-
- try {
-
- manager.deleteById(PersonTable.class,6);
- PersonTable person = manager.selector(PersonTable.class).where("age","=","25").findFirst();
- manager.delete(person);
-
- manager.delete(PersonTable.class, WhereBuilder.b("age",">","24").and("sex","=","女"));
- } catch (DbException e) {
- e.printStackTrace();
- }
-
- list.clear();
- list.addAll(queryAll());
- adapter.notifyDataSetChanged();
- break;
- }
- }
- }
- * 数据库形成表的注意事项:
- * 1.在类名之上加入@Table(name = "person")标签,表示当前的类会被创建成表,name属性之后
- * 对应的值表示表的名称
- * 2.类当中的属性需要在上面加入@Column(name = " ")标签,然后name对应的值就代表了数据库当中的表的名称。
- * 3.类当中一定有一个属性作为主键,否则表不会创建成功,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 double 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 int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- public String getSex() {
- return sex;
- }
-
- public void setSex(String sex) {
- this.sex = sex;
- }
-
- public double getSalary() {
- return salary;
- }
-
- public void setSalary(double salary) {
- this.salary = salary;
- }
-
- public PersonTable(int id, String name, int age, String sex, double salary) {
- this.id = id;
- this.name = name;
- this.age = age;
- this.sex = sex;
- this.salary = salary;
- }
-
- public PersonTable() {
- }
- }
0 0