Android-开源框架之XUtils的基本使用

今天介绍一些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");

然后就可以看到我们的效果图了


猜你喜欢

转载自blog.csdn.net/qiuqiu_qiuqiu123/article/details/55805705