Xutils3基本使用方法1
来源:互联网 发布:低周波按摩仪 知乎 编辑:程序博客网 时间:2024/06/07 21:01
今天来谈谈Xutils3()
调试环境: android studio
在谈Xutils3之前我们先来看看Xutils3
1:功能非常丰富,包含了很多实用的工具
2:Xutils3相对于xutils2对Android 6.0兼容更好了
3:支持超大文件上传(超过2G)上传,更全面的http请求协议支持(11种谓词)...
4:国内用户多,网上教程丰富
一:在我们的项目中快速配置Xutils 3
Xutils3 在android studio 中配置非常简单:
第一步 添加框架:
右击你的项目--选择Open Module Settings --选择Dependencies--选择右上角的“+”号--选择Library dependency--在Choose Library Dependencies对话框里即可下查找下载框架了。
第二步 添加网络权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />第三步在Application里初始化
package com.xutils.xutils3;import android.app.Application;import org.xutils.x;/** * application * * Created by Administrator on 2017/5/16. */public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this);//初始化 x.Ext.setDebug(BuildConfig.DEBUG);//是否输出debug日志, 开启debug会影响性能 }}
补充:Application使用方法(在androidManifest 里添加 android:name=".MyApplication")
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:name=".MyApplication" android:theme="@style/AppTheme"> <activity android:name=".MainAty"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
二:XUtils3 四大核心模块
XUtils3 一共有四大核心模块它们分别是:
注解模块
网络模块
图片加载模块
数据库模块
下面我们结合Demo依次介绍它们
1:注解模块
我用的注解有以下两种,想了解更多参考官方Demo
@ViewInject(控件初始化)、@Event(按钮设置点击事件)
public class MainAty extends AppCompatActivity { @ViewInject(R.id.bn_picture)//图片 控件初始化 private Button bn_picture; @Event(value ={R.id.bn_picture,R.id.bn_file})//设置点击事件 private void onClick(View view){ switch (view.getId()){ case R.id.bn_picture: Toast.makeText(this,"图片",Toast.LENGTH_SHORT).show(); break; case R.id.bn_file: Toast.makeText(this,"下载文件",Toast.LENGTH_SHORT).show(); break; default: break; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aty_main); x.view().inject(this);//初始化xutils3 }}
2:网络模块
我将从以下几方面介绍XUtils3的网络模块
GET请求
/** * 请求网络 */ private void initHttp(){ String url="https://hao.qq.com/"; ProgressDialog progressDialog=new ProgressDialog(this); progressDialog.setMessage("请稍后"); RequestParams params=new RequestParams(url); params.addQueryStringParameter("username","123456"); params.addQueryStringParameter("password","werfd"); x.http().get(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Log.e("Xutils3请求:","请求成功的"+result); } @Override public void onError(Throwable ex, boolean isOnCallback) { Log.e("Xutils3请求:","请求失败的"+ex); } @Override public void onCancelled(CancelledException cex) { Log.e("Xutils3请求:","取消的"+cex); } @Override public void onFinished() { Log.e("Xutils3请求:","完成的"); } }); }
带有缓存的GET请求
/** * 请求网络 */ private void initHttp() { String url = "https://hao.qq.com/"; ProgressDialog progressDialog = new ProgressDialog(this); progressDialog.setMessage("请稍后"); RequestParams params = new RequestParams(url); params.addQueryStringParameter("username", "123456"); params.addQueryStringParameter("password", "werfd"); params.addHeader("head", "txderef"); //为当前请求添加一个头 x.http().get(params, new Callback.CacheCallback<String>() { @Override public boolean onCache(String result) { //在setCacheMaxAge设置范围(上面设置的是60秒)内,如果再次调用GET请求, //返回true:缓存内容被返回,相信本地缓存,返回false:缓存内容被返回,不相信本地缓存,仍然会请求网络 Log.i("cache",result); return false; } @Override public void onSuccess(String result) { Log.e("Xutils3请求:", "请求成功的" + result); } @Override public void onError(Throwable ex, boolean isOnCallback) { Log.e("Xutils3请求:", "请求失败的" + ex); } @Override public void onCancelled(CancelledException cex) { Log.e("Xutils3请求:", "取消的" + cex); } @Override public void onFinished() { Log.e("Xutils3请求:", "完成的"); } //result:缓存内容 }); }
POST请求
/** * 请求网络 */ private void initHttp(){ String url="https://hao.qq.com/"; ProgressDialog progressDialog=new ProgressDialog(this); progressDialog.setMessage("请稍后"); RequestParams params=new RequestParams(url); params.addQueryStringParameter("username","123456"); params.addQueryStringParameter("password","werfd"); params.addHeader("head","txderef"); //为当前请求添加一个头 x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Log.e("Xutils3请求:","请求成功的"+result); } @Override public void onError(Throwable ex, boolean isOnCallback) { Log.e("Xutils3请求:","请求失败的"+ex); } @Override public void onCancelled(CancelledException cex) { Log.e("Xutils3请求:","取消的"+cex); } @Override public void onFinished() { Log.e("Xutils3请求:","完成的"); } }); }
其他网络请求方式
/** * 请求网络 */ private void initHttp() { String url = "https://hao.qq.com/"; ProgressDialog progressDialog = new ProgressDialog(this); progressDialog.setMessage("请稍后"); RequestParams params = new RequestParams(url); params.addParameter("username", "123456"); params.addParameter("password", "werfd"); x.http().request(HttpMethod.PUT, params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Log.e("Xutils3请求:", "请求成功的" + result); } @Override public void onError(Throwable ex, boolean isOnCallback) { Log.e("Xutils3请求:", "请求失败的" + ex); } @Override public void onCancelled(CancelledException cex) { Log.e("Xutils3请求:", "取消的" + cex); } @Override public void onFinished() { Log.e("Xutils3请求:", "完成的"); } //result:缓存内容 }); }
阅读全文
1 0
- Xutils3基本使用方法1
- XUtils3基本使用方法
- XUtils3框架的基本使用方法
- XUtils3框架的基本使用方法(一)
- XUtils3框架的基本使用方法(二)
- XUtils3框架的基本使用方法(一)
- XUtils3框架的基本使用方法(二)
- XUtils3框架的基本使用方法(一)
- XUtils3框架的基本使用方法(一)
- xutils3使用方法
- xutils3使用方法
- XUtils===XUtils3框架的基本使用方法(一)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(一)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(一)
- XUtils===XUtils3框架的基本使用方法(二)
- C++反射
- 数据结构——哈夫曼树实现
- Educational Codeforces Round 21 A
- coreseek 安装 配置 的及详细的使用方法
- Form Parts: Creating form method callbacks
- Xutils3基本使用方法1
- 如何刷pat(想要在pat甲级拿80到90分)
- mysql之视图
- EMR集群上capacity_scheduler的ACL实现 http://click.aliyun.com/m/20978/
- Git和SVN共存的方法
- 康拓展开+康拓展开的逆运算
- PIMPL实现String(pointer to implementation)
- CF803C:Maximal GCD(思维 & 构造)
- css艺术字效果,渐变字