xUtils3 的基本使用

来源:互联网 发布:澄海 全知药水 编辑:程序博客网 时间:2024/06/07 00:44

Activity的注解

1.在Application的oncreate方法中加入下面代码:

x.Ext.init(this);

2.在Activity的oncreate方法中加入下面代码:

x.view().inject(this);

3.加载当前的Activity布局需要如下注解:

@ContentView加入到Activity的上方例:    @ContentView(R.layout.activity_main)public class MainActivity extends AppCompatActivity {    x.view().inject(this);    //...自己的逻辑}

4.给View进行初始化需要如下注解:

@InjectView//其实就是正常的 findViewById();方法而已例:    //xx就是你的控件ID    @InjectView(R.id.XX)    TextView tv;

5.处理控件的各种响应事件需要如下注解:

@Envent//添加事件的方法例:    //绑定单击事件 单击事件 默认的就是 所以不用指定类型    @Envent(R.id.main_btn)    //回调方法 方法触发后执行的方法 修饰符只能用 private    private void XX(View view){        //...写你自己的逻辑    }

网络模块

Get请求方式:

 //测试网址 String url = "http://www.93.gov.cn/93app/data.do";    //定义请求参数对象        RequestParams r = new RequestParams(url);        //添加请求参数 Key Value 的形式        r.addQueryStringParameter("channelId", "0");        r.addQueryStringParameter("startNum", "0");        //发送请求 (get)方式        x.http().get(r, new Callback.CommonCallback<String>() {            @Override            public void onSuccess(String result) {                t.setText(result);            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {                Toast.makeText(MainActivity.this, "出错了", Toast.LENGTH_SHORT).show();            }            @Override            public void onCancelled(CancelledException cex) {                Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_SHORT).show();            }            @Override            public void onFinished() {                Toast.makeText(MainActivity.this, "完成了", Toast.LENGTH_SHORT).show();            }        });

下面我们来看下带有缓存的GET请求,POST请求和其他请求方式类似,后面就不再赘述:

String url = "http://www.93.gov.cn/93app/data.do";    //定义请求参数对象        RequestParams r = new RequestParams(url);        //添加请求参数 Key Value 的形式        r.addQueryStringParameter("channelId", "0");        r.addQueryStringParameter("startNum", "0");        x.http().get(params, new Callback.CacheCallback<String>() {             @Override            public boolean onCache(String result) { //得到缓存数据, 缓存过期后不会进入                this.result = result;                return true; //true: 信任缓存数据, 不再发起网络请求; false不信任缓存数据            }             @Override            public void onSuccess(String result) {            //如果服务返回304或onCache选择了信任缓存,这时result为null                Log.i("JAVA", "开始请求");                if (result != null) {                    this.result = result;                }            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {                Toast.makeText(MainActivity.this, "出错了", Toast.LENGTH_SHORT).show();            }            @Override            public void onCancelled(CancelledException cex) {                Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_SHORT).show();            }            @Override            public void onFinished() {                Toast.makeText(MainActivity.this, "完成了", Toast.LENGTH_SHORT).show();            }        }

post请求方式:

RequestParams params = new RequestParams(url);params.addBodyParameter("username","abc");params.addParameter("password","123");params.addHeader("head","android"); //为当前请求添加一个头x.http().post(params, new Callback.CommonCallback<String>() {    @Override    public void onSuccess(String result) {        //解析result    }    @Override    public void onError(Throwable ex, boolean isOnCallback) {    }    @Override    public void onCancelled(CancelledException cex) {    }    @Override    public void onFinished() {    }});

其他网络请求方式:

RequestParams params = new RequestParams(url);params.addParameter("username","abc");x.http().request(HttpMethod.PUT, params, new Callback.CommonCallback<String>() {    @Override    public void onSuccess(String result) {        //解析result    }    @Override    public void onError(Throwable ex, boolean isOnCallback) {    }    @Override    public void onCancelled(CancelledException cex) {    }    @Override    public void onFinished() {    }});

上传文件:

//获取文件的路径 这里是 获取 手机SD卡中的 文件File file = new File(Environment.getExternalStorageDirectory(),"/Music/fjxc.mp3");RequestParams params = new RequestParams(url);//将文件当作参数 上传params.addBodyParameter("file", file);params.setMultipart(true);x.http().post(params, new Callback.CommonCallback<String>() {      @Override      public void onSuccess(String result) {          Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show();      }      @Override      public void onError(Throwable ex, boolean isOnCallback) {          Toast.makeText(MainActivity.this, "上传失败啦", Toast.LENGTH_SHORT).show();      }      @Override      public void onCancelled(CancelledException cex) {          Toast.makeText(MainActivity.this, "上传被取消啦", Toast.LENGTH_SHORT).show();      }      @Override      public void onFinished() {          Toast.makeText(MainActivity.this, "上传完成啦", Toast.LENGTH_SHORT).show();      }});

下载文件:

这里以下载apk为例进行说明,apk下载完成后,自动调用系统的安装方法。

 RequestParams params = new RequestParams(url);        //下载文件的保存路径        params.setSaveFilePath(Environment.getExternalStorageDirectory() + "/apk");        //自动修改文件名字        params.setAutoRename(true);        x.http().get(params, new Callback.CommonCallback<File>() {            @Override            public void onSuccess(File result) {                //下载成功之后进行安装apk                Intent intent = new Intent(Intent.ACTION_VIEW);                intent.setDataAndType(Uri.fromFile(result),"application/vnd.android.package-archive");                startActivity(intent);            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }        });

图片模块的使用

xUtils3图片模块,重点在于加载图片的4个bind方法,loadDrawable与loadFIle用法和ImageOptions用法,需多加练习。

ImageOptions

//通过ImageOptions.Builder().set方法设置图片的属性ImageOptions imageOptions= new ImageOptions.Builder().setFadeIn(true).build(); //淡入效果//ImageOptions.Builder()的一些其他属性:.setCircular(true) //设置图片显示为圆形.setSquare(true) //设置图片显示为正方形.setCrop(true).setSize(200,200) //设置大小.setAnimation(animation) //设置动画.setFailureDrawable(Drawable failureDrawable) //设置加载失败的动画.setFailureDrawableId(int failureDrawable) //以资源id设置加载失败的动画.setLoadingDrawable(Drawable loadingDrawable) //设置加载中的动画.setLoadingDrawableId(int loadingDrawable) //以资源id设置加载中的动画.setIgnoreGif(false) //忽略Gif图片.setParamsBuilder(ParamsBuilder paramsBuilder) //在网络请求中添加一些参数.setRaduis(20) //设置拐角弧度.setUseMemCache(true) //设置使用MemCache,默认true

bind方法

// 加载资源文件(本地的文件)x.image().bind(imageView, "assets://test.gif", imageOptions);// 加载网络资源x.image().bind(imageView, new File("/sdcard/test.gif").toURI().toString(), imageOptions);x.image().bind(imageView, "/sdcard/test.gif", imageOptions);x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions);x.image().bind(imageView, "file:/sdcard/test.gif", imageOptions);//有回调方法的bind方法x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback<Drawable>() {    @Override    public void onSuccess(Drawable result) {    }    @Override    public void onError(Throwable ex, boolean isOnCallback) {    }    @Override    public void onCancelled(CancelledException cex) {    }    @Override    public void onFinished() {    }}

loadDrawable方法

x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {    @Override    public void onSuccess(Drawable result) {        imageView.setImageDrawable(result);    }    @Override    public void onError(Throwable ex, boolean isOnCallback) {    }    @Override    public void onCancelled(CancelledException cex) {    }    @Override    public void onFinished() {    }});

loadFile方法

当我们通过bind()或者loadDrawable()方法加载了一张图片后,它会保存到本地文件中,那当我需要这张图片时,就可以通过loadFile()方法进行查找。

x.image().loadFile(url,imageOptions,new Callback.CacheCallback<File>(){    @Override    public boolean onCache(File result) {        //在这里可以做图片另存为等操作        Log.i("JAVA","file:"+result.getPath()+result.getName());        return true; //相信本地缓存返回true    }    @Override    public void onSuccess(File result) {    }    @Override    public void onError(Throwable ex, boolean isOnCallback) {    }    @Override    public void onCancelled(CancelledException cex) {    }    @Override    public void onFinished() {    }});

数据库模块的使用

原创粉丝点击