xUtils的使用(二)

来源:互联网 发布:唐嫣演技知乎 编辑:程序博客网 时间:2024/05/20 04:13

图片加载模块:

## 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()) {            //加载assets中的图片            case R.id.btn_asset:                ImageOptions options = new ImageOptions.Builder()                        .setIgnoreGif(false)    //设置是否忽略gif格式的图片                        .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)//                        .setCircular(true)                         .setRadius(20)                        .setFadeIn(true)                        .setAutoRotate(true)                        .setUseMemCache(true)                        .build();//                x.image().bind(iv,url,options);                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);    }    /**     * @des 获取数据库的person表当中的全部内容     *     * */    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);//            list = queryAll();//            adapter.notifyDataSetChanged();        } 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:                //根据id做删除                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
原创粉丝点击