Xutils3使用全解析
来源:互联网 发布:中国钢铁产能过剩数据 编辑:程序博客网 时间:2024/05/16 05:52
初始化及注解:
x.Ext.init(this);
//是否开启log,开启后将影响性能
x.Ext.setDebug(true);
注解的使用:
①//绑定空间及布局文件
@ContentView(R.layout.activity_main)
public classMainActivity extendsAppCompatActivity {
@ViewInject(R.id.pgb)
ProgressBarbar;
@ViewInject(R.id.img_test)
ImageViewimgTest;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
x.view().inject(this);
}
②//绑定事件
/**
* 给每个按钮设置点击事件
*/
@Event(value = {R.id.btn_get, R.id.btn_post, R.id.btn_download, R.id.btn_upload, R.id.load_img, R.id.btn_db})
private voidgetEvent(View v) {
switch(v.getId()) {
caseR.id.btn_get:
getMethod();
break;
caseR.id.btn_post:
postMethod();
break;
caseR.id.btn_download:
download();
break;
caseR.id.btn_upload:
upload();
break;
caseR.id.load_img:
loadImage();
break;
caseR.id.btn_db:
useDb();
break;
}
}
一:get请求:
/**
* get的请求方法
*/
public voidgetMethod() {
RequestParams params =new RequestParams("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png");
x.http().get(params,new Callback.CommonCallback<String>()......}
二:post请求:(上传表单或者上传json)
/**
* 使用xutils完成post请求
*/
public voidpostMethod() {
RequestParams params =new RequestParams("https://www.baidu.com/?tn=62095104_oem_dg");
//上传表单
params.addBodyParameter("age","25");
//上传json数据----------------------------------------------------------------------------------
JSONObject object =new JSONObject();
try{
object.put("name","23");
}catch (JSONException e) {
e.printStackTrace();
}
params.setAsJsonContent(true);
params.setBodyContent(object.toString());
//--------------------------------------------------------------------------------------------------
x.http().post(params,new Callback.CommonCallback<String>() {............}
三:断点续传(下载):
public voiddownload() {
RequestParams params =new RequestParams("https://github.com/XXApple/AndroidLibs.git");
//下载文件完成放置的路径
params.setSaveFilePath(Environment.getExternalStorageDirectory() + "/me/a.zip");
//是否自动命名
params.setAutoRename(false);
//是否断点续传
params.setAutoResume(true);
//开三个子线程进行下载,会更快
params.setExecutor(newPriorityExecutor(3,true));
//是否可以停止
params.setCancelFast(true);
x.http().get(params,new Callback.ProgressCallback<File>() {........}
四:上传文件:
//上传的路径
RequestParams params =new RequestParams("xxxxxxx");
//是否是上传文件
params.setMultipart(true);
//本地文件的路径
params.addBodyParameter("file", Environment.getExternalStorageDirectory() +"sdcard/a.mp4");
x.http().get(params,new Callback.CommonCallback<String>() {......}
五:图片加载:
public voidloadImage() {
ImageOptions options =new ImageOptions.Builder().
setCrop(true).
setLoadingDrawableId(R.mipmap.ic_launcher).
setUseMemCache(true).
build();
x.image().bind(imgTest,"https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png", options);
}
六:数据库:
一:对象中指定表名和列名,如下
@Table(name ="person")
public classPerson {
@Column(name ="id", autoGen =true, isId =true)
private intid;
@Column(name ="age")
private intage;
@Column(name ="name")
privateString name;
@Column(name ="price")
private intprice;
二:初始化DbManager
privateDbManager.DaoConfig getConfig() {
DbManager.DaoConfig config =new DbManager.DaoConfig();
//数据库的路径
config.setDbDir(newFile("sdcard/360")).
//是否允许事物
setAllowTransaction(true).
//数据库名
setDbName("test.db").
//数据库版本
setDbVersion(1).
setDbOpenListener(newDbManager.DbOpenListener() {
@Override
public voidonDbOpened(DbManager db) {
// 开启WAL, 对写入加速提升巨大
db.getDatabase().enableWriteAheadLogging();
}
}).setDbUpgradeListener(newDbManager.DbUpgradeListener() {
@Override
public voidonUpgrade(DbManager db, int oldVersion, intnewVersion) {
}
}).setTableCreateListener(newDbManager.TableCreateListener() {
@Override
public voidonTableCreated(DbManager db, TableEntity<?> table) {
}
});
returnconfig;
}
三:增
List<Person> persons =new ArrayList<>();
for(inti = 0; i <5; i++) {
Person person =new Person(i, 20+ i, "路人"+ i, 10+ i);
persons.add(person);
}
try{
db.saveBindingId(persons);
}catch (DbException e) {
e.printStackTrace();
}
四:删
try{
//删除所有元素
db.delete(Person.class);
//删除指定ID的元素
db.deleteById(Person.class,1);
//删除指定元素
db.delete(newObject());
//删除特定条件的元素
WhereBuilder builder = WhereBuilder.b();
builder.and("id","=","2");
db.delete(Person.class, builder);
}catch (DbException e) {
e.printStackTrace();
}
五:改
WhereBuilder builder = WhereBuilder.b();
builder.and("id","=","1");
try{
db.update(Person.class, builder, newKeyValue("id",10),new KeyValue("price","999999999"));
}catch (DbException e) {
e.printStackTrace();
}
六:查
try{
longa = db.selector(Person.class).count();
//查个数
Log.e("a","useDb: ");
//查找所有元素
List<Person> list =db.findAll(Person.class);
Log.e("list","" + list.size());
//查找指定ID的元素
Person person1 =db.findById(Person.class,3);
Log.e("person1","" + person1.toString());
//按指定条件查找
List<Person> person2 =db.selector(Person.class).where("id","=","4").findAll();
Log.e("person2","" + person2.get(0).toString());
}catch (DbException e) {
e.printStackTrace();
}
阅读全文
0 0
- Xutils3使用全解析
- Android开发 使用Xutils3请求、解析数据
- xutils3初级解析
- Android xUtils3完全解析
- Android xUtils3完全解析
- xutils3解析数据:
- Xutils3完全解析
- Android xUtils3完全解析
- Service使用全解析
- 反射使用全解析
- CoordinatorLayout使用全解析
- Xutils3的使用
- xutils3.0使用流程
- xutils3的使用
- xUtils3的使用
- xUtils3.0使用介绍
- 开源库xUtils3使用详解
- Xutils3使用心得
- 知识点整理:box-sizing/clear/overhidden/box-flex/animation/replace(RegExp,'')/this/parseInt(num1,base)
- Registration system
- EasyDemo*andorid面试式题
- 【多校连萌2】D题 ykc想吃好吃的【补题】【最大子段和变形题】
- C/C++--two
- Xutils3使用全解析
- TortoiseGit 2.5.0 正式发布,Git 客户端
- SpringBoot-WebSocket广播消息+单点消息(指定用户发送消息)
- mysql分表和表分区详解
- Python之拷贝对象
- 百练2792:集合加法
- 线程的私有数据(TSD)
- 设计模式C++实现(11)——装饰模式
- Android开发 sharesdk分享微信/朋友圈的时候只显示文字,不显示链接