Xutils3.0简单的应用Dome

来源:互联网 发布:js数组去重的方法sp 编辑:程序博客网 时间:2024/05/17 23:59

1.在build.gradle中 添加依赖

compile 'org.xutils:xutils:3.5.0'
在AndroidManifest.xml文件中

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

android:name=".MyXutilsApp"

自定义一个初始化类

public class MyXutilsApp extends Application{    //初始化数据库    private static DbManager.DaoConfig daoConfig;    private static MyXutilsApp myXutilsApp;    private SQLiteOpenHelper helper;   public static DbManager getDaoConfig(){        daoConfig=new DbManager.DaoConfig()                //创建数据库名                .setDbName("ManHua.db")                //设置数据库版本号                .setDbVersion(1);        DbManager db = x.getDb(daoConfig);        return db;    }    @Override    public void onCreate() {        super.onCreate();        //初始化        x.Ext.init(this);        //设置是否输出Debug        x.Ext.setDebug(true);        //数据库       myXutilsApp=this;    }  //数据库    @Override    public void onTerminate() {        if (helper!=null){            helper.close();        }        super.onTerminate();    }

在Activity中调用工具类

private ListView listView;private String path="http://api.kuaikanmanhua.com/v1/daily/comic_lists/1489334400?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg5NjQzNTYxODM4LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjM0IiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6IkxFTk9WTyIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjMsIiRzY3JlZW5faGVpZ2h0IjoxNDQwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjMsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTAsIiRzY3JlZW5fd2lkdGgiOjkwMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNISU5BIE1PQklMRSIsIiRtb2RlbCI6Ikxlbm92byBQNzAtdCIsIiRhcHBfdmVyc2lvbiI6IjMuOS4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo1MDdCOUQyN0Q2NUEwMDAwIiwib3JpZ2luYWxfaWQiOiJBOjUwN0I5RDI3RDY1QTAwMDAiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9";@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    initView();    MyXutilsHttpUtils.myHttpUtils(path,listView,this);}private void initView() {    listView = (ListView) findViewById(R.id.listView);}

网络请求操作

创建一个工具类

public static void myHttpUtils(String url, final ListView listView, final Context context){        //传值Url    RequestParams requestParams = new RequestParams(url);    x.http().get(requestParams, new Callback.CommonCallback<String>() {        //请求成功时调用        @Override        public void onSuccess(String result) {            //在方法中可以做解析、适配等工作            Gson gson=new Gson();            Bean bean = gson.fromJson(result, Bean.class);            List<Bean.DataBean.ComicsBean> comics = bean.getData().getComics();            MyListViewAdapter adapter=new MyListViewAdapter(context,comics);            listView.setAdapter(adapter);             //数据库            List<ManHua> list=new ArrayList<ManHua>();             for (int i = 0; i <comics.size() ; i++) {               String cover_image_url = comics.get(i).getCover_image_url();                String title = comics.get(i).getTopic().getTitle();                ManHua manHua=new ManHua(i,cover_image_url,title);                list.add(manHua);            }            DbManager daoConfig = MyXutilsApp.getDaoConfig();            try {                daoConfig.save(list);            } catch (DbException e) {                e.printStackTrace();            }        }        //请求失败时调用        @Override        public void onError(Throwable ex, boolean isOnCallback) {        }        //取消网络请求时调用        @Override        public void onCancelled(CancelledException cex) {        }        //请求完成时调用        @Override        public void onFinished() {        }    });}   
操作数据库

创建一个实体类

@Table(name = "ManHua.db",onCreated = "")public class ManHua {    /**     * name = "id":数据库表中的一个字段     * isId = true:是否是主键     * autoGen = true:是否自动增长     * property = "NOT NULL":添加约束     */   @Column(name ="id",isId = true,autoGen = true,property = "NOT NULL")    private int id;    @Column(name = "imageurl")    private String imageurl;    @Column(name = "titel")    private String titel;    public ManHua(int id, String imageurl, String titel) {        this.id = id;        this.imageurl = imageurl;        this.titel = titel;    }    public ManHua() {    }    @Override    public String toString() {        return "ManHua{" +                "id=" + id +                ", imageurl='" + imageurl + '\'' +                ", titel='" + titel + '\'' +                '}';    }}
在初始化类及工具类中的操作上面有详细注释

图片操作

ImageOptions options=new ImageOptions.Builder()        //设置图片的大小        .setSize(120,120)        //设置圆角半径        .setRadius(60)        //获得不是设置的图片尺寸,是否舍弃        .setCrop(true)        //加载中显示的图片        .setLoadingDrawableId(R.mipmap.ic_launcher)        //加载失败显示的图片        .setFailureDrawableId(R.mipmap.ic_launcher)        .build();x.image().bind(v.imageView,list.get(i).getCover_image_url(),options);




0 0