您的位置:首页 > 理论基础 > 计算机网络

HttpRulconnection 基础使用--->将网络获取的资源 用ListView展示

2017-04-16 21:01 375 查看
/////////////////////////////////////////////////////////

package com.bawei.zday05__httpurlconnection;

import android.os.Handler;

import android.os.Message;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.EditText;

import android.widget.ListView;

import com.bawei.zday05__httpurlconnection.GetInput.GetInout;

import com.bawei.zday05__httpurlconnection.aadapter.LiAdapter;

import com.bawei.zday05__httpurlconnection.bean.Weather;

import com.google.gson.Gson;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.ProtocolException;

import java.net.URL;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private ListView listView;
private EditText editText;
private ArrayList<String> strings;
private LiAdapter liAdapter;
private String waa;

//Handler 主线程更新 UI
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//接收 消息
String  obj = (String) msg.obj;

//添加到 集合中
strings.add(waa);
//刷新适配器
liAdapter.notifyDataSetChanged();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

listView = (ListView) findViewById(R.id.list);
strings = new ArrayList<>();
liAdapter = new LiAdapter(MainActivity.this,strings);
listView.setAdapter(liAdapter);

liAdapter.notifyDataSetChanged();
editText = (EditText) findViewById(R.id.btedt);
}
public  void chaxun(View view){
new Thread(){
@Override
public void run() {
super.run();
//获取输入框内容
String string = editText.getText().toString();

//调用方法 返回对象
Weather gethttpconnection = gethttpconnection(string);
Weather.ResultBean result = gethttpconnection.getResult();
Weather.ResultBean.DataBean data = result.getData();
//得到自己想要的东西()
waa = data.getW();

//hander 发送消息
Message message = new Message();
message.obj=waa;
message.what=0;
handler.sendMessage(message);
}
}.start();

}
public Weather gethttpconnection(String address){
try {
//网络访问的网址
URL url = new URL("http://v.juhe.cn/xiangji_weather/real_time_weather.php?areaid="+address+"&key=c17d778dfc94163edbd10ff05bbea463");
// 向服务端发送请求
HttpURLConnection connection= (HttpURLConnection) url.openConnection();
//设置建立连接时间
connection.setConnectTimeout(5000);
//设置读取的时间
connection.setReadTimeout(5000);
//设置请求的方式
connection.setRequestMethod("GET");

//服务器 响应
// 获取请求吗
int code = connection.getResponseCode();
//如果 请求吗 是200
if (code == 200){
//获取数据
InputStream inputStream = (InputStream) connection.getContent();
// 调用方法 将InputStream 流转化成 String 类型
String s = GetInout.get(inputStream);

Gson gson = new Gson();
Weather weather = gson.fromJson(s.toString(), Weather.class);

return weather;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}


}

//////////////////////////////////////////////////////////////

package com.bawei.zday05__httpurlconnection.GetInput;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

/**

* 作者:王万鹏

* 时间:2017/4/13.8:54

* 作用:将InputStream 转化成 String类型

*/

public class GetInout {

public  static String get(InputStream inputStream){

byte[] buffer=new byte[1024];
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int read = 0;
while ((read = inputStream.read(buffer)) != -1){
byteArrayOutputStream.write(buffer,0,read);
}
return  byteArrayOutputStream.toString();
} catch (IOException e) {
e.printStackTrace();
}
return  null;
}


}

///////////////////////////////////////

package com.bawei.zday05__httpurlconnection.bean;

/**

* 作者:王万鹏

* 时间:2017/4/13.9:05

* 作用:

*/

public class Weather {

/**
* error_code : 0
* reason : success
* result : {"data":{"airp":1009,"aqi":101,"cw":"02","cwd":"02","rh":21,"st":14,"tip_aqi":"轻度污染","tmp":14,"w":"阴","wd":"东风","wdg":3},"pubTime":"20170413091303","reqTime":"20170413092447"}
*/

private int error_code;
private String reason;
private ResultBean result;

@Override
public String toString() {
return "Weather{" +
"error_code=" + error_code +
", reason='" + reason + '\'' +
", result=" + result +
'}';
}

public int getError_code() {
return error_code;
}

public void setError_code(int error_code) {
this.error_code = error_code;
}

public String getReason() {
return reason;
}

public void setReason(String reason) {
this.reason = reason;
}

public ResultBean getResult() {
return result;
}

public void setResult(ResultBean result) {
this.result = result;
}

public static class ResultBean {
/**
* data : {"airp":1009,"aqi":101,"cw":"02","cwd":"02","rh":21,"st":14,"tip_aqi":"轻度污染","tmp":14,"w":"阴","wd":"东风","wdg":3}
* pubTime : 20170413091303
* reqTime : 20170413092447
*/

private DataBean data;
private String pubTime;
private String reqTime;

@Override
public String toString() {
return "ResultBean{" +
"data=" + data +
", pubTime='" + pubTime + '\'' +
", reqTime='" + reqTime + '\'' +
'}';
}

public DataBean getData() {
return data;
}

public void setData(DataBean data) {
this.data = data;
}

public String getPubTime() {
return pubTime;
}

public void setPubTime(String pubTime) {
this.pubTime = pubTime;
}

public String getReqTime() {
return reqTime;
}

public void setReqTime(String reqTime) {
this.reqTime = reqTime;
}

public static class DataBean {
/**
* airp : 1009
* aqi : 101
* cw : 02
* cwd : 02
* rh : 21
* st : 14
* tip_aqi : 轻度污染
* tmp : 14
* w : 阴
* wd : 东风
* wdg : 3
*/

private int airp;
private int aqi;
private String cw;
private String cwd;
private int rh;
private int st;
private String tip_aqi;
private int tmp;
private String w;
private String wd;
private int wdg;

@Override
public String toString() {
return "DataBean{" +
"airp=" + airp +
", aqi=" + aqi +
", cw='" + cw + '\'' +
", cwd='" + cwd + '\'' +
", rh=" + rh +
", st=" + st +
", tip_aqi='" + tip_aqi + '\'' +
", tmp=" + tmp +
", w='" + w + '\'' +
", wd='" + wd + '\'' +
", wdg=" + wdg +
'}';
}

public int getAirp() {
return airp;
}

public void setAirp(int airp) {
this.airp = airp;
}

public int getAqi() {
return aqi;
}

public void setAqi(int aqi) {
this.aqi = aqi;
}

public String getCw() {
return cw;
}

public void setCw(String cw) {
this.cw = cw;
}

public String getCwd() {
return cwd;
}

public void setCwd(String cwd) {
this.cwd = cwd;
}

public int getRh() {
return rh;
}

public void setRh(int rh) {
this.rh = rh;
}

public int getSt() {
return st;
}

public void setSt(int st) {
this.st = st;
}

public String getTip_aqi() {
return tip_aqi;
}

public void setTip_aqi(String tip_aqi) {
this.tip_aqi = tip_aqi;
}

public int getTmp() {
return tmp;
}

public void setTmp(int tmp) {
this.tmp = tmp;
}

public String getW() {
return w;
}

public void setW(String w) {
this.w = w;
}

public String getWd() {
return wd;
}

public void setWd(String wd) {
this.wd = wd;
}

public int getWdg() {
return wdg;
}

public void setWdg(int wdg) {
this.wdg = wdg;
}
}
}


}

////////////////////////////////////////////////

package com.bawei.zday05__httpurlconnection.aadapter;

import android.content.Context;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

import com.bawei.zday05__httpurlconnection.R;

import java.util.ArrayList;

/**

* 作者:王万鹏

* 时间:2017/4/13.11:13

* 作用:

*/

public class LiAdapter extends BaseAdapter{

Context context;

ArrayList strings;

private ViewHolder holder;

public LiAdapter(Context context, ArrayList<String> strings) {
this.context = context;
this.strings = strings;
}

@Override
public int getCount() {
return strings.size();
}

@Override
public Object getItem(int position) {
return strings.get(position);
}

@Overri
a43a
de
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

if (convertView==null){
holder = new ViewHolder();
convertView=View.inflate(context, R.layout.list_view,null);
holder.text= (TextView) convertView.findViewById(R.id.text);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.text.setText(strings.get(position));
return convertView;
}
class ViewHolder{
TextView text;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐