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



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

這里我們使用 1.GET ,2.Post 請(qǐng)求數(shù)據(jù) ,3.在服務(wù)器上下載文件完成,保存到sd卡中
- 首先獲取請(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ù)

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;
}
}
}
···
效果圖:

