今天介绍一些Android框架里面的网络框架,我认为功能比较强大的XUtils框架
目前XUtils里面总共有四大模块:DbUtils数据库模块、ViewUtils UI模块、HttpUtil网络模块、BitmapUtil图片加载模块
使用XUtils3步骤
1).先去官网下载jar包
2).复制到项目的libs下
3).添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
4).在Gradle里添加依赖
compile 'org.xutils:xutils:3.3.40'
5).我们新建一个MyApplication类,继承Application,重写onCreat方法,在里面初始化XUtils
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化
x.Ext.init(this);
}
}
然后要记得去Manifest里面添加类声明
然后去写布局文件
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="xutils获取数据"
android:id="@+id/b_xutils_data"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_utils_show"
/>
</ScrollView>
在Activity中,我们要使用注解的方式去获取控件
package com.zking.android_parserjson;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;
public class xutilsActivity extends AppCompatActivity {
@ViewInject(R.id.tv_utils_show)
private TextView tv_utils_show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xutils);
//加载view注解
x.view().inject(this);
}
@Event(value=R.id.b_xutils_data,type=View.OnClickListener.class)
private void getData(View view){
//获取数据
RequestParams params=new RequestParams("https://www.baidu.com/s");
params.addQueryStringParameter("wd","2017世界编程语言");
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
tv_utils_show.setText(result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
tv_utils_show.setText("网络君感冒了");
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
}
因为是获取百度上的数据,所以编译出来是这个样的,但是,也表明我们获取成功了
然后我们再试一下获取百度的logo图片
在布局文件里面写一个ImageButton,设置一个默认图片
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ib_xutils_image"
android:src="@mipmap/ic_launcher"
/>
在Activity里面,得到控件
@ViewInject(R.id.ib_xutils_image)
private ImageView ib_xutils_image;
给控件设值
x.image().bind(ib_xutils_image,"https://www.baidu.com/img/bd_logo1.png");
然后就可以看到我们的效果图了