最近在研究剩下两个模块,没办法,基础不老好,学习网络和数据库模块吃力些。
网络模块
一、 json,xml访问
网络请求支持get,post,put等方式,如下为get方式:
private void visitBaidu() {
RequestParams parms = new RequestParams("https://www.baidu.com");
//parms.setSslSocketFactory();
//parms.addQueryStringParameter("wd","xUtils");
x.http().get(parms, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
txt.setText("onSuccess");
Toast.makeText(x.app(), result, Toast.LENGTH_LONG).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
txt.setText("onError");
Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onFinished() {
}
});
}
二、文件下载
方式一(不带进度条)
String url = "http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/3.3.36/xutils-3.3.36.aar";
RequestParams parms2 = new RequestParams(url);
parms2.setSaveFilePath("/sdcard/xUtils/12.aar");
//parms2.setAutoRename(true);
Callback.Cancelable cancelable=x.http().get(parms2, new Callback.CommonCallback<File>() {
@Override
public void onSuccess(File result) {
txt.setText("download success");
Toast.makeText(x.app(), "download success", Toast.LENGTH_LONG).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
txt.setText("download Error");
Toast.makeText(x.app(), "download onError", Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(CancelledException cex) {
txt.setText("download onCancelled");
}
@Override
public void onFinished() {
}
});
//cancelable.cancel();
方式2(带进度条)
String url = "http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/3.3.36/xutils-3.3.36.aar";
RequestParams parms2 = new RequestParams(url);
parms2.setSaveFilePath("/sdcard/xUtils/12.aar");
//parms2.setAutoRename(true);
Callback.Cancelable cancelable2 =x.http().get(parms2, new CustomCallBack());
//cancelable.cancel();
public class CustomCallBack implements Callback.ProgressCallback<File>{
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
}
@Override
public void onLoading(long total, long current, boolean isDownloading) {
pb.setProgress((int) (current * 100 / total));
}
@Override
public void onSuccess(File result) {
txt.setText("download success");
Toast.makeText(x.app(), "download success", Toast.LENGTH_LONG).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
txt.setText("download Error");
Toast.makeText(x.app(), "download onError", Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
}
作者wyouflf在demo中创建了一个多线程下载管理器,超赞
数据库模块
1、先创建数据库表单对应的实体类
@Table(name = "child_info")
public class ChildInfo {
@Column(name = "id",isId = true)
private int id;
@Column(name = "name")
private String name;
/*public ChildInfo(String name) {
this.name = name;
}*/
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;
}
@Override
public String toString() {
return "child_info{"+"id="+id+" ,name="+name+"}";
}
}
2、创建并配置数据库
DbManager.DaoConfig m_daoConfig = new DbManager.DaoConfig()
.setDbName("xUtils.db")
.setDbDir(new File("/sdcard"))
.setDbVersion(3)
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
}
})
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
}
});
3、创建表单,进行增删改查
@Event(R.id.btn)
private void btn1(View v) {
try {
DbManager db= x.getDb(m_daoConfig);
List<ChildInfo> childInfos = new ArrayList<ChildInfo>();
/*childInfos.add(new ChildInfo("zhangsan"));
childInfos.add(new ChildInfo("lisi"));
childInfos.add(new ChildInfo("wangwu"));
childInfos.add(new ChildInfo("zhaoliu"));
childInfos.add(new ChildInfo("qianqi"));
childInfos.add(new ChildInfo("sunba"));
db.save(childInfos);*/
//db.saveOrUpdate(childInfos);
for (int i = 0; i < 10; i++) {
ChildInfo info=new ChildInfo();
info.setName("sunba"+i);
childInfos.add(info);
}
db.saveOrUpdate(childInfos);
} catch (DbException e) {
e.printStackTrace();
}
}