package com.example.accessdatabase;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.xutils.x;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
/**
*
* @author sKy°
* Spinner:使用适配器绑定数据源为 "数组类型" 的数据
* @d2016-5-13
*/
@ContentView(R.layout.mytest)
public class downloadActivity extends Activity implements OnClickListener {
// 初始化所需数据
private Spinner spinner;
private ArrayAdapter<String> adapter;
private String[] data;
@ViewInject(R.id.btn_download)
private Button btn_download;
@ViewInject(R.id.tv_txt)
private TextView tv_txt;
@ViewInject(R.id.tv_website)
private TextView tv_website;
private ProgressDialog mProgressDialog;
private AlertDialog.Builder mAlertDialog;
private Context context;
private Activity oThis;
private String[] web_name = {"百度","网易","新浪"};
private String[] web_url = {"https://www.baidu.com","http://www.163.com","http://www.sina.com.cn/"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//引用插件
x.view().inject(this);
//setContentView(R.layout.activity_main1);
// 找到spinner控件
//spinner=(Spinner) findViewById(R.id.sp);
// 创建数据源
//data=new String[]{"资源1","资源2","资源3","资源4"};
// 数据源与适配器绑定
//adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data);
// Spinner控件与适配器绑定
//spinner.setAdapter(adapter);
//防止this为内部类方法块中使用出错
oThis = this;
//防止this为内部类方法块中使用出错
context = this;
mAlertDialog = new AlertDialog.Builder(context);
mAlertDialog.setItems(web_name, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int index) {
// TODO Auto-generated method stub
tv_website.setText(web_url[index]);
}});
btn_download.setOnClickListener(this);
tv_website.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId()==R.id.tv_website){
mAlertDialog.show();
}
if(v.getId()==R.id.btn_download){
RequestParams params = new RequestParams(tv_website.getText().toString());
// params.addQueryStringParameter("username", "liudehua");
// params.addQueryStringParameter("password", "abc123");
//发出访问网络请求
x.http().get(params, new Callback.CommonCallback<String>() {
//成功后返回
@Override
public void onSuccess(String result) {
//返回后的结果——result
Log.v("TAG", result);
Message msg = new Message();
msg.what=1;
msg.obj=result;
//Bundle 安卓传参用插件,很多参数放在setData,然后取出。
Bundle bundle = new Bundle();
bundle.putString("result", result);
msg.setData(bundle);
handler.sendMessage(msg);
}
//失败后返回
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.v("TAG", "出错了!");
}
@Override
public void onCancelled(Callback.CancelledException cex) {
}
@Override
public void onFinished() {
}
});
// TODO Auto-generated method stub
//mProgressDialog.show(context, "提示", "正在下载");
// mProgressDialog = ProgressDialog.show(oThis, "提示", "正在下载");
// new Thread(new Runnable() {
// @Override
// public void run() {
// // TODO Auto-generated method stub
// //SD卡路径
// String path = Environment.getExternalStorageDirectory()
// .toString();
// //找到文件名
// String name = "d.html";
// //找到下载地址
// String url = "http://www.avicsafety.com/temp.html";
// try {
// //运行下载命令
// download(url, path, name);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
// }).start();
}
}
//
// protected void onCreate(Bundle savedInstanceState) {
// // TODO Auto-generated method stub
// super.onCreate(savedInstanceState);
// this.setContentView(R.layout.activity_main1);
// btn_download = (Button) this.findViewById(R.id.btn_download);
// btn_download.setOnClickListener(new OnClickListener() {
//
// @Override
// public void onClick(View arg0) {
// // TODO Auto-generated method stub
// new Thread(new Runnable() {
// @Override
// public void run() {
// // TODO Auto-generated method stub
// String path = Environment.getExternalStorageDirectory()
// .toString();
// String name = "d.html";
// String url = "http://www.avicsafety.com/temp.html";
// try {
// download(url, path, name);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
// }).start();
//
// }
// });
// }
public void download(String _url, String path, String filename)
throws IOException {
URL url = new URL(_url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
}
File file = new File(path, filename);
FileOutputStream fos = new FileOutputStream(file);
byte buf[] = new byte[1024];
do {
int numread = is.read(buf);
if (numread <= 0) {
handler.sendEmptyMessage(3);
break;
}
fos.write(buf, 0, numread);
} while (true);
fos.close();
is.close();
}
protected Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==1){
Bundle bundle = msg.getData();
tv_txt.setText(bundle.getString("result"));
}
if (msg.what == 3) {
mProgressDialog.dismiss();
mAlertDialog.setMessage("下载完成了");
mAlertDialog.show();
Log.v("tag", "download finish");
}
}
};
}