今天闲来无事,通过和风天气接口实现了一个简单的获取当前时间点的天气情况,话不多说,直接给大家展示代码,功能是挺简单的,

1、获取数据的实体类:

 

package wxc.com.weatheer;import java.util.List;/** * Created by 宝 on 2017/9/16. */public class WeatherBean {    /**     * basic : {"city":"西青","cnty":"中国","id":"CN101030500","lat":"39.13944626","lon":"117.01224518","update":{"loc":"2017-09-16 07:46","utc":"2017-09-15 23:46"}}     * now : {"cond":{"code":"101","txt":"多云"},"fl":"24","hum":"72","pcpn":"0","pres":"1014","tmp":"23","vis":"10","wind":{"deg":"172","dir":"南风","sc":"微风","spd":"7"}}     * status : ok     */    private List HeWeather5;    public List getHeWeather5() {        return HeWeather5;    }    public void setHeWeather5(List HeWeather5) {        this.HeWeather5 = HeWeather5;    }    public static class HeWeather5Bean {        /**         * city : 西青         * cnty : 中国         * id : CN101030500         * lat : 39.13944626         * lon : 117.01224518         * update : {"loc":"2017-09-16 07:46","utc":"2017-09-15 23:46"}         */        private BasicBean basic;        /**         * cond : {"code":"101","txt":"多云"}         * fl : 24         * hum : 72         * pcpn : 0         * pres : 1014         * tmp : 23         * vis : 10         * wind : {"deg":"172","dir":"南风","sc":"微风","spd":"7"}         */        private NowBean now;        private String status;        public BasicBean getBasic() {            return basic;        }        public void setBasic(BasicBean basic) {            this.basic = basic;        }        public NowBean getNow() {            return now;        }        public void setNow(NowBean now) {            this.now = now;        }        public String getStatus() {            return status;        }        public void setStatus(String status) {            this.status = status;        }        public static class BasicBean {            private String city;            private String cnty;            private String id;            private String lat;            private String lon;            /**             * loc : 2017-09-16 07:46             * utc : 2017-09-15 23:46             */            private UpdateBean update;            public String getCity() {                return city;            }            public void setCity(String city) {                this.city = city;            }            public String getCnty() {                return cnty;            }            public void setCnty(String cnty) {                this.cnty = cnty;            }            public String getId() {                return id;            }            public void setId(String id) {                this.id = id;            }            public String getLat() {                return lat;            }            public void setLat(String lat) {                this.lat = lat;            }            public String getLon() {                return lon;            }            public void setLon(String lon) {                this.lon = lon;            }            public UpdateBean getUpdate() {                return update;            }            public void setUpdate(UpdateBean update) {                this.update = update;            }            public static class UpdateBean {                private String loc;                private String utc;                public String getLoc() {                    return loc;                }                public void setLoc(String loc) {                    this.loc = loc;                }                public String getUtc() {                    return utc;                }                public void setUtc(String utc) {                    this.utc = utc;                }            }        }        public static class NowBean {            /**             * code : 101             * txt : 多云             */            private CondBean cond;            private String fl;            private String hum;            private String pcpn;            private String pres;            private String tmp;            private String vis;            /**             * deg : 172             * dir : 南风             * sc : 微风             * spd : 7             */            private WindBean wind;            public CondBean getCond() {                return cond;            }            public void setCond(CondBean cond) {                this.cond = cond;            }            public String getFl() {                return fl;            }            public void setFl(String fl) {                this.fl = fl;            }            public String getHum() {                return hum;            }            public void setHum(String hum) {                this.hum = hum;            }            public String getPcpn() {                return pcpn;            }            public void setPcpn(String pcpn) {                this.pcpn = pcpn;            }            public String getPres() {                return pres;            }            public void setPres(String pres) {                this.pres = pres;            }            public String getTmp() {                return tmp;            }            public void setTmp(String tmp) {                this.tmp = tmp;            }            public String getVis() {                return vis;            }            public void setVis(String vis) {                this.vis = vis;            }            public WindBean getWind() {                return wind;            }            public void setWind(WindBean wind) {                this.wind = wind;            }            public static class CondBean {                private String code;                private String txt;                public String getCode() {                    return code;                }                public void setCode(String code) {                    this.code = code;                }                public String getTxt() {                    return txt;                }                public void setTxt(String txt) {                    this.txt = txt;                }            }            public static class WindBean {                private String deg;                private String dir;                private String sc;                private String spd;                public String getDeg() {                    return deg;                }                public void setDeg(String deg) {                    this.deg = deg;                }                public String getDir() {                    return dir;                }                public void setDir(String dir) {                    this.dir = dir;                }                public String getSc() {                    return sc;                }                public void setSc(String sc) {                    this.sc = sc;                }                public String getSpd() {                    return spd;                }                public void setSpd(String spd) {                    this.spd = spd;                }            }        }    }}

 

 

 

2、下面是主要代码

和风的接口,有免费的和收费的,这里使用的是免费的

 

private String url = "https://free-api.heweather.com/v5/now?city=CN101030500&key=XXXXXX";

 

 

 

下面通过解析数据获取信息

 

try {    // /创建okHttpClient对象    OkHttpClient mOkHttpClient = new OkHttpClient();    //创建一个Request    final Request request = new Request.Builder()            .url(url)            .build();    //new call    Call call = mOkHttpClient.newCall(request);    //请求加入调度    call.enqueue(new Callback() {        @Override        public void onFailure(Call call, IOException e) {        }        @Override        public void onResponse(Call call, Response response) throws IOException {            String string = response.body().string();            Gson gosn = new Gson();            w = new ArrayList();            WeatherBean bean =gosn.fromJson(string,WeatherBean.class);            w.add(bean);            runOnUiThread(new Runnable() {                @Override                public void run() {                    String citi = w.get(0).getHeWeather5().get(0).getBasic().getCity();                    String cn = w.get(0).getHeWeather5().get(0).getBasic().getCnty();                    String updateTime = w.get(0).getHeWeather5().get(0).getBasic().getUpdate().getLoc();                    String text = w.get(0).getHeWeather5().get(0).getNow().getCond().getTxt();                    String tep = w.get(0).getHeWeather5().get(0).getNow().getTmp();                    t1.setText(citi);                    t2.setText(cn);                    t3.setText(updateTime);                    t4.setText(text);                    t5.setText(tep);                }            });        }    });} catch (Exception e) {    e.printStackTrace();}

这样就实现了一个简单的展示当前天气的功能,根据自己的需求,要想多长时间更新一次就可以了,值得注意的是,免费的接口每天请求的数量是有限制的,

 

 

源代码下载:http://download.csdn.net/download/chen_xiaobao/10043393

 

更多相关文章

  1. Android(安卓)中使用Pull解析XML文件
  2. Android之简易天气预报小应用(xml解析练手)
  3. Android开发实战-项目学习笔记(2)

随机推荐

  1. Android 4.2 setContentView 流程研究分
  2. [置顶] android中加载图片
  3. 第一章:第三节:Concurrency in Android
  4. Android Service之LOCATION_SERVICE
  5. android 摄像头 ov2655 驱动注册
  6. 【Android】五种不同的Toast
  7. android原生SQLite数据库的使用
  8. Android ApiDemos示例解析(130):Views->L
  9. Android 代码实现关机重启
  10. 短视频平台源码android四种不同的事件实