Xutils3

    xiaoxiao2021-03-25  77

    package com.bawei.xutils3.app; import android.app.Application; import org.xutils.DbManager; import org.xutils.x; import java.io.File; /**  * 1. 类的用途  * 2. @author forever  * 3. @date 2017/3/8 15:55  */ public class MyApplication extends Application {     @Override     public void onCreate() {         super.onCreate();         //初始化xutils3         x.Ext.init(this);         //输出日志 设置为false就是为了不影响性能         x.Ext.setDebug(false);     }     public static DbManager getDb() {         //对daoConfig初始化 进行配置         DbManager.DaoConfig daoConfig = new DbManager.DaoConfig().setDbName("bw.db").setDbDir(new File("/mnt/sdcard")).setDbVersion(1);         DbManager db = x.getDb(daoConfig);         return db;     } }

    //建表

    package com.bawei.xutils3.bean; import org.xutils.db.annotation.Column; import org.xutils.db.annotation.Table; /**  * 1. 类的用途 数据库表跟实体类对象进行关联  * 2. @author forever  * 3. @date 2017/3/9 15:10  * onCreated 当第一次创建表的时候执行sql语句  */ @Table(name = "Student", onCreated = "") public class Student {     /**      * name = "id",表中的一个字段      * isId = true,是否是主键      * autoGen = true, 是否自增长      * property = "NOT NULL" 添加约束      */     @Column(name = "id", isId = true, autoGen = true, property = "NOT NULL")     private int id;     @Column(name = "name")     private String name;     //无参构造方法如果不添加的话 数据库表创建不成功     public Student() {     }     public Student(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 "Student{" +                 "id=" + id +                 ", name='" + name + '\'' +                 '}';     } }

    //业务功能

    package com.bawei.xutils3.activity; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.bawei.xutils3.R; import com.bawei.xutils3.app.MyApplication; import com.bawei.xutils3.bean.Student; import org.xutils.DbManager; import org.xutils.common.Callback; import org.xutils.db.sqlite.WhereBuilder; import org.xutils.ex.DbException; import org.xutils.http.RequestParams; import org.xutils.image.ImageOptions; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import org.xutils.x; import java.util.ArrayList; import java.util.List; /**  * 注解的方式加载布局  */ @ContentView(R.layout.activity_main) public class MainActivity extends AppCompatActivity {     @ViewInject(R.id.tv)     TextView tv;     @ViewInject(R.id.iv)     ImageView iv;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         // setContentView(R.layout.activity_main);         /**          *   初始化注解          */         x.view().inject(this);         tv.setText("这是我使用xutils3的注解方式");     }     /**      * 1,方法必须私有限定,      * 2,方法参数形式必须和type对应的Listener接口一致.      * 3,注解参数value支持数组: value={id1, id2, id3}      * type默认View.OnClickListener.class,故此处可以简化不写,@Event(R.id.bt_main)      * 默认的是单击事件      */     // @Event(type = View.OnClickListener.class, value = R.id.tv)     @Event({R.id.tv, R.id.iv, R.id.bt_add, R.id.bt_find, R.id.bt_update, R.id.bt_delete})     private void testOnClick(View view) {         DbManager db = new MyApplication().getDb();         switch (view.getId()) {             case R.id.tv:                 Toast.makeText(MainActivity.this, "这是我使用注解方式实现点击事件", Toast.LENGTH_SHORT).show();                 getData();                 break;             case R.id.iv:                 Toast.makeText(MainActivity.this, "这是我使用注解方式实现点击事件", Toast.LENGTH_SHORT).show();                 getServerData();                 //通过ImageOptions.Builder().set方法设置图片的属性                 ImageOptions options = new ImageOptions.Builder().setCircular(true).setCrop(true).setSize(100, 100).setLoadingDrawableId(R.mipmap.ic_launcher).build();                 x.image().bind(iv, "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489035859303&di=a701b850fecd73173a020305d46eec77&imgtype=0&src=http://b.hiphotos.baidu.com/zhidao/pic/item/1f178a82b9014a90e7eb9d17ac773912b21bee47.jpg", options);                 break;             case R.id.bt_add:                 //插入                 Toast.makeText(MainActivity.this, "保存数据", Toast.LENGTH_SHORT).show();                 List<Student> students = new ArrayList<>();                 students.add(new Student("zhangsan"));                 students.add(new Student("lisi"));                 students.add(new Student("wangwu"));                 students.add(new Student("zhaoliu"));                 try {                     db.save(students);                     Toast.makeText(MainActivity.this, "保存数据成功", Toast.LENGTH_SHORT).show();                 } catch (DbException e) {                     e.printStackTrace();                 }                 break;             case R.id.bt_find:                 try {                     Student student = db.findFirst(Student.class);                     Log.i("xxx", student.toString());                     List<Student> studentList = db.findAll(Student.class);                     for (Student student1 : studentList) {                         Log.i("xxx", student1.toString());                     }                 } catch (DbException e) {                     e.printStackTrace();                 }                 break;             case R.id.bt_update:                 try {                     //第一种方式 更新第一个对象的名字                     Student student = db.findFirst(Student.class);                    /* student.setName("wowo");                     db.update(student, "name");*/                     //第二种方式                    /* WhereBuilder b = WhereBuilder.b();                     b.and("id", "=", student.getId());                     KeyValue value = new KeyValue("name", "sisi");                     db.update(Student.class, b, value);*/                     //第三种方式                     student.setName("xixi");                     db.saveOrUpdate(student);                     Toast.makeText(MainActivity.this, "更新成功", Toast.LENGTH_SHORT).show();                 } catch (DbException e) {                     e.printStackTrace();                 }                 break;             case R.id.bt_delete:                 try {                     //删除表中的所有数据                     //  db.delete(Student.class);                     //根据条件删除表中的数据                     WhereBuilder b = WhereBuilder.b();                     b.and("id", ">", "5");                     b.and("id", "<", "8");                     db.delete(Student.class, b);                     Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();                 } catch (DbException e) {                     e.printStackTrace();                 }                 break;         }     }     /**      * 长按事件      *      * @param v      * @return      */     @Event(type = View.OnLongClickListener.class, value = R.id.iv)     private boolean testOnLongClick(View v) {         switch (v.getId()) {             case R.id.iv:                 Toast.makeText(MainActivity.this, "这是我使用注解方式实现长按事件", Toast.LENGTH_SHORT).show();                 postData();                 break;         }         return true;     }     //post请求方式     private void postData() {         String url = "http://www.93.gov.cn/93app/data.do";         RequestParams params = new RequestParams(url);         params.addBodyParameter("channelId", "0");         params.addParameter("startNum", "0");         params.addHeader("head", "android");         x.http().post(params, new Callback.CommonCallback<String>() {             @Override             public void onSuccess(String result) {                 Log.i("xxx", result);             }             @Override             public void onError(Throwable ex, boolean isOnCallback) {             }             @Override             public void onCancelled(CancelledException cex) {             }             @Override             public void onFinished() {             }         });     }     //get请求方式 获取网络数据 缓存     private void getData() {         String url = "http://www.93.gov.cn/93app/data.do";         RequestParams params = new RequestParams(url);         params.addQueryStringParameter("channelId", "0");         params.addQueryStringParameter("startNum", "0");         params.setCacheMaxAge(1000 * 60);         x.http().get(params, new Callback.CacheCallback<String>() {             private String result = null;             @Override             public boolean onCache(String result) {                 this.result = result;                 //默认false不走缓存 true 走缓存 过期之后就不走缓存                 Toast.makeText(MainActivity.this, "走缓存", Toast.LENGTH_SHORT).show();                 return true;             }             @Override             public void onSuccess(String result) {                 if (result != null) {                     this.result = result;                 }                 Log.i("aaa", result);             }             @Override             public void onError(Throwable ex, boolean isOnCallback) {             }             @Override             public void onCancelled(CancelledException cex) {             }             @Override             public void onFinished() {             }         });     }     //get请求方式 获取网络数据     private void getServerData() {         String url = "http://www.93.gov.cn/93app/data.do";         RequestParams params = new RequestParams(url);         params.addQueryStringParameter("channelId", "0");         params.addQueryStringParameter("startNum", "0");         x.http().get(params, new Callback.CommonCallback<String>() {             @Override             public void onSuccess(String result) {                 Log.i("xxx", result);             }             @Override             public void onError(Throwable ex, boolean isOnCallback) {             }             @Override             public void onCancelled(CancelledException cex) {             }             @Override             public void onFinished() {             }         });     } }

    转载请注明原文地址: https://ju.6miu.com/read-15830.html

    最新回复(0)