xUtils 網(wǎng)絡(luò)模塊的使用

在這里我們使用快速生成點(diǎn)擊事件的方法:
如何快速生成點(diǎn)擊事件 ,這里我們?cè)谡f(shuō)一下:


image.png

image.png

image.png

接下來(lái)如何使用:

我們看一下布局:
image.png

這里我們使用 1.GET ,2.Post 請(qǐng)求數(shù)據(jù) ,3.在服務(wù)器上下載文件完成,保存到sd卡中
  1. 首先獲取請(qǐng)求的網(wǎng)址,
    2.通過(guò) RequestParams params = new RequestParams(url); 這行代碼 把網(wǎng)址添加進(jìn)來(lái),
    然后 通過(guò) x .http().get ()獲取一個(gè)Callback對(duì)象:

Callback.Cancelable cancelable = x.http().get(params,
new Callback.CommonCallback<String>() {
//重寫(xiě)里面的方法
}
3.在 onSuccess方法中設(shè)置數(shù)據(jù)


image.png

MainActivity中代碼:
···

package com.example.wangye.androidmlc_class11;

import android.Manifest;
import android.content.pm.PackageManager;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.image.ImageOptions;
import org.xutils.x;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;

/**

  • Created by wangye on 2018/8/8.
    */

public class MyActivity extends AppCompatActivity {
@InjectView(R.id.button)
Button btGet;
@InjectView(R.id.button1)
Button btPost;
@InjectView(R.id.textView)
TextView tx;
@InjectView(R.id.button2)
Button button3;
@InjectView(R.id.progressBar)
ProgressBar progressBar;
String p[] = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
@InjectView(R.id.imageView)
ImageView imageView;
@InjectView(R.id.button3)
Button btImage;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     ButterKnife.inject(this);
    if (Build.VERSION.SDK_INT >= 23) {
        if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                == PackageManager.PERMISSION_DENIED) {
            requestPermissions(p, 100);
        }
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == 100) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Toast.makeText(this, "已獲取SDCard讀取權(quán)限", Toast.LENGTH_SHORT).show();
        }
    }
}

@OnClick({R.id.button, R.id.button1, R.id.button2,R.id.button3})
public void onViewClicked(View view) {
    switch (view.getId()) {
        case R.id.button:
            String url = null;
            try {
                url = "http://apicloud.mob.com/v1/weather/query?key=26fd3a8aab7d4&city=" +
                        URLEncoder.encode("通州", "UTF-8") + "&province=" + URLEncoder.encode("北京", "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            RequestParams params = new RequestParams(url);
            Callback.Cancelable cancelable = x.http().get(params,
                    new Callback.CommonCallback<String>() {
                        @Override
                        public void onSuccess(String result) {
                            tx.setText(result);
                        }

                        @Override
                        public void onError(Throwable ex, boolean isOnCallback) {

                        }

                        @Override
                        public void onCancelled(CancelledException cex) {

                        }

                        @Override
                        public void onFinished() {

                        }
                    });
            break;
        case R.id.button1:
            String url1 = "http://apicloud.mob.com/v1/weather/query";
            RequestParams params1 = new RequestParams(url1);
            try {
                params1.addQueryStringParameter("key", URLEncoder.encode("26fd3a8aab7d4", "UTF-8"));
                params1.addQueryStringParameter("city", URLEncoder.encode("通州", "UTF-8"));
                params1.addQueryStringParameter("province", URLEncoder.encode("北京", "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            Callback.Cancelable cancelable1 = x.http().post(params1,
                    new Callback.CommonCallback<String>() {
                        @Override
                        public void onSuccess(String result) {
                            tx.setText(result);
                        }

                        @Override
                        public void onError(Throwable ex, boolean isOnCallback) {

                        }

                        @Override
                        public void onCancelled(CancelledException cex) {

                        }

                        @Override
                        public void onFinished() {

                        }
                    });
            break;
        case R.id.button2:
            String url2 = "http://p3.so.qhimgs1.com/t0152da6f8976b7b4a3.jpg";
            RequestParams params2 = new RequestParams(url2);
            final File file = new File(
                    Environment.getExternalStorageDirectory() + "/a123.jpg");//在服務(wù)器上下載完成,保存到sd卡中

// file.mkdir();

            params2.setSaveFilePath(file.getAbsolutePath());
            params2.setAutoRename(true);
            Callback.Cancelable can = x.http().post(params2,
                    new Callback.ProgressCallback<File>() {
                        @Override
                        public void onSuccess(File result) {
                            imageView.setImageBitmap(
                                    BitmapFactory.decodeFile(file.getAbsolutePath()));
                            Toast.makeText(MyActivity.this, "下載成功", Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onError(Throwable ex, boolean isOnCallback) {
                            Toast.makeText(MyActivity.this, ex.toString(), Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onCancelled(CancelledException cex) {

                        }

                        @Override
                        public void onFinished() {

                        }

                        @Override
                        public void onWaiting() {

                        }

                        @Override
                        public void onStarted() {
                            Toast.makeText(MyActivity.this, "開(kāi)始下載", Toast.LENGTH_SHORT).show();

                        }

                        @Override
                        public void onLoading(long total, long current, boolean isDownloading) {
                            progressBar.setMax((int) total);
                            progressBar.setProgress((int) current);
                        }
                    });
            break;
    }
}

}

···
效果圖:


image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,566評(píng)論 1 9
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,837評(píng)論 2 45
  • 曾經(jīng)看過(guò)這樣一個(gè)故事:有一只強(qiáng)壯的母獅子帶著它的寶寶,行走在路上時(shí),偶然遇到了一只正在向它們咆哮的瘋狗。但母獅子的...
    歷練成圣閱讀 315評(píng)論 0 0
  • 今日走勢(shì),先揚(yáng)后逆,正如昨日“[0717]多頭經(jīng)受了考驗(yàn),但警報(bào)尚未解除”文末所言: 甚至市場(chǎng)還會(huì)走出一個(gè)可能的L...
    古月量化閱讀 320評(píng)論 0 0
  • 我之國(guó),大理城 你的皮膚燒著沒(méi) 身著青衫的人哪 呼吸的全是汗水 你那甘甜的乳水 我從何處可品嘗 你那陽(yáng)春的白雪 叫...
    小魚(yú)clover閱讀 188評(píng)論 0 4

友情鏈接更多精彩內(nèi)容