Android Xutils 框架
2015-04-11 13:18 阅读(182)

目录(?)[-]

  1. xUtils简介

  2. 目前xUtils主要有四大模块

  3. 使用xUtils快速开发框架需要有以下权限

  4. 混淆时注意事项

  5. DbUtils使用方法

  6. ViewUtils使用方法

  7. HttpUtils使用方法

    1. 普通get方法

    2. 使用HttpUtils上传文件 或者 提交数据 到服务器post方法

    3. 使用HttpUtils下载文件

  8. BitmapUtils 使用方法

  9. 其他更多示例代码见sample文件夹中的代码

    1. 输出日志 LogUtils

 

xUtils简介

目前xUtils主要有四大模块:


使用xUtils快速开发框架需要有以下权限:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

混淆时注意事项:


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()); Parent entity = db.findFirst(entity);//通过entity的属性查找 List<Parent> list = db.findAll(entity);//通过entity的属性查找 Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test")); List<Parent> list = db.findAll(Selector.from(Parent.class) .where("id","<",54) .and("age",">",30) .or("age","<",20) .orderBy("id") .limit(10) .offset(0)); 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)")); ...

ViewUtils使用方法

@ViewInject(R.id.textView) TextView textView; // 取消了之前使用方法名绑定事件的方式,使用id绑定不受混淆影响 @OnClick(R.id.test_button) public void testButtonClick(View v) { ... } ... //在使用注解对象之前调用(如onCreate中): @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ViewUtils.inject(this); ... textView.setText("some text..."); ... }

HttpUtils使用方法:

普通get方法

HttpUtils http = new HttpUtils(); http.send(HttpRequest.HttpMethod.GET, "http://www.lidroid.com", new RequestCallBack<String>(){ @Override public void onLoading(long total, long current) { testTextView.setText(current + "/" + total); } @Override public void onSuccess(String result) { textView.setText(result); } @Override public void onStart() { } @Override public void onFailure((HttpException error, String msg) { } });

使用HttpUtils上传文件 或者 提交数据 到服务器(post方法)

RequestParams params = new RequestParams(); params.addHeader("name", "value"); params.addQueryStringParameter("name", "value"); // 只包含字符串参数时默认使用BodyParamsEntity, // 类似于UrlEncodedFormEntity("application/x-www-form-urlencoded")。 params.addBodyParameter("name", "value"); // 加入文件参数后默认使用MultipartEntity("multipart/form-data"), // 如需"multipart/related",xUtils中提供的MultipartEntity支持设置subType为"related"。 // 使用params.setBodyEntity(httpEntity)可设置更多类型的HttpEntity(如: // MultipartEntity,BodyParamsEntity,FileUploadEntity,InputStreamUploadEntity,StringEntity)。 params.addBodyParameter("file", new File("path")); ... HttpUtils http = new HttpUtils(); http.send(HttpRequest.HttpMethod.POST, "uploadUrl....", params, new RequestCallBack<String>() { @Override public void onStart() { testTextView.setText("conn..."); } @Override public void onLoading(long total, long current) { testTextView.setText(current + "/" + total); } @Override public void onSuccess(String result) { testTextView.setText("upload response:" + result.getPath()); } @Override public void onFailure(HttpException error, String msg) { testTextView.setText(error.getExceptionCode() + ":" + msg); } });

使用HttpUtils下载文件:

HttpUtils http = new HttpUtils(); HttpHandler handler = http.download("http://apache.dataguru.cn/httpcomponents/httpclient/source/httpcomponents-client-4.2.5-src.zip", "/sdcard/httpcomponents-client-4.2.5-src.zip", true, // 如果目标文件存在,接着未完成的部分继续下载。 true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。 new RequestCallBack<File>() { @Override public void onStart() { testTextView.setText("conn..."); } @Override public void onLoading(long total, long current) { testTextView.setText(current + "/" + total); } @Override public void onSuccess(File result) { testTextView.setText("downloaded:" + result.getPath()); } @Override public void onFailure(HttpException error, String msg) { testTextView.setText(msg); } }); ... //调用stop()方法停止下载 handler.stop(); ...

BitmapUtils 使用方法

BitmapUtils.create(this).display(testImageView, "http://bbs.lidroid.com/static/image/common/logo.png"); //BitmapUtils.create(this).display(testImageView, "/sdcard/test.jpg"); //支持加载本地图片 // 使用ListView等容器展示图片时可通过PauseOnScrollListener控制滑动和快速滑动过程中时候暂停加载图片 listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true)); listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true), customListener);

其他(***更多示例代码见sample文件夹中的代码***)

输出日志 LogUtils

// 自动添加TAG,格式: className[methodName, lineNumber] // 可设置全局的allowD,allowE...,控制是否输出log。 LogUtils.d("wyouflf");

点击下载