黑马程序员技术交流社区

标题: Android--xUtils开发框架详析(中)! [打印本页]

作者: Android_Robot    时间: 2016-7-19 14:49
标题: Android--xUtils开发框架详析(中)!
本帖最后由 Android_Robot 于 2016-10-27 14:30 编辑

                      android--xUtils开发框架详析(中


DbUtils使用方法:

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 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 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 dbModels = db.findDbModelAll(Selector.from(Parent.class).groupBy("name").select("name", "count(name)")); ...

List dbModels = db.findDbModelAll(sql);
// 自定义sql查询 db.execNonQuery(sql)
// 执行自定义sql
...
ViewUtils使用方法:
// xUtils的view注解要求必须提供id,以使代码混淆不受影响。
@ViewInject(R.id.textView)
TextView textView;

@ViewInject(vale=R.id.textView, parentId=R.id.parentView)
TextView textView;

@ResInject(id = R.string.label, type = ResType.String)
private String label;

//取消了之前使用方法名绑定事件的方式,使用id绑定不受混淆影响
// 支持绑定多个id
@OnClick({R.id.id1, R.id.id2, R.id.id3})
// or
@OnClick(value={R.id.id1, R.id.id2, R.id.id3},
parentId={R.id.pid1, R.id.pid2, R.id.pid3})
// 更多事件支持参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
@OnClick(R.id.testbutton)
public void testButtonClick(View v) {
        // 方法签名必须和接口中的要求一致
        ...
        }
...
//在Activity中注入:
@Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ViewUtils.inject(this);
        //注入view和事件 ...
        textView.setText("some text...");
        ...
        }
//在Fragment中注入:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.bitmapfragment, container, false);
        // 加载fragment布局
        ViewUtils.inject(this, view);
        //注入view和事件
        ...
        }
//在PreferenceFragment中注入:
public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ViewUtils.inject(this, getPreferenceScreen());
        //注入view和事件
        ...
        }
// 其他重载
// inject(View view);
// inject(Activity activity)
// inject(PreferenceActivity preferenceActivity)
// inject(Object handler, View view)
// inject(Object handler, Activity activity)
// inject(Object handler, PreferenceGroup preferenceGroup)
// inject(Object handler, PreferenceActivity preferenceActivity)

BitmapUtils 使用方法:
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));



【强荐!】2016年最新Android学习路线图——按此路线图学习月薪过万{ 火速收入}

作者: 896575538    时间: 2016-7-19 18:34
好东西  666
作者: 紫电_恶魔    时间: 2016-7-20 00:33
好东西,感谢
作者: chidaodehouguo    时间: 2016-7-21 21:23
介绍的真详细!
作者: sanmaovszhe    时间: 2016-7-23 00:07
别让自己后悔!
作者: 龙大人    时间: 2016-7-23 22:50
认真学,别让自己后悔!
作者: 龙大人    时间: 2016-7-23 22:51
认真学,别让自己后悔!
作者: haochengjian    时间: 2016-7-23 23:17
按赞赞赞赞赞赞赞赞
作者: Frank_Ms1ZR    时间: 2016-7-23 23:43
谢谢分享,赞一个!!!
作者: 657324    时间: 2016-7-24 00:46
不错 学习了
作者: xpf0121    时间: 2016-7-25 01:00
谢谢分享,给力
作者: miqideliwu    时间: 2016-7-26 23:44
感谢楼主分享,学习。。。,一起加油
作者: 13182002757    时间: 2016-7-27 08:20
没学到这里 帮顶一下
作者: 修身丶丶丶    时间: 2016-8-1 11:03
每天保持好心情
作者: wangyuit    时间: 2016-10-27 22:43
真牛!!!!

作者: rodgerun    时间: 2016-10-30 14:25





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2