android百度天气预报接口,用百度天气接口的实现安卓天气预报(json数据)

代码地址:

具体思路:

1.写一个线程,其中city_str就是城市名,例如

city_str="宁波";

2.然后通过线程取百度天气接口json数据

(注意不要用ie开这个网址,用谷歌、火狐那些应该都可以,我用的是火狐)

打开网址后,就可以看到那些json数据了。

3.对取到数据进行处理(在void doingData(String data)函数里进行处理),并根据这些数据设置自己的控件显示

线程代码如下:

class MyAsyncTask extends AsyncTask {

@Override

protected void onPreExecute() {

// TODO Auto-generated method stub

// super.onPreExecute();

}

}

@Override

protected String doInBackground(String... params) {

// TODO Auto-generated method stub

String path = "";

try {

city_str = cityname.getText().toString();

citys_strlength=city_str.length();

city_str = java.net.URLEncoder.encode(city_str, "UTF-8");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

path = "http://api.map.baidu.com/telematics/v3/weather?location="

+ city_str + "&output=json&ak=GuZriL3rkm1MUnyTyfsNGvTC";

// http://api.map.baidu.com/telematics/v3/weather?location=北京&output=json&ak=GuZriL3rkm1MUnyTyfsNGvTC

String jsonString = HttpUtils.getJsonContent(path);

return jsonString;// 作为result传递到onPostExecute

}

@Override

protected void onPostExecute(String result) {

// TODO Auto-generated method stub

// super.onPostExecute(result);

doingData(result);// 处理得到的数据

}

}

public void doingData(String data) {

System.out.println("百度天气接口数据在这"+data);

//在这里处理数据,并根据所得到的值设置控件的显示就ok了。

}

4.加入代码后,在onCreate(Bundle savedInstanceState)函数中加入以下这句代码就ok了。

new MyAsyncTask().execute();

结果数据部分:

在doingData(String data)部分将得到的数据打印出来,就可以在system.out.print中看到这样的数据:

{

"error":0,

"status":"success",

"date":"2014-05-12",

"results":[

{

"currentCity":"\u5b81\u6ce2",

"weather_data":[

{

"date":"\u5468\u4e00(\u4eca\u5929, \u5b9e\u65f6\uff1a19\u2103)",

"dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/duoyun.png",

"nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/duoyun.png",

"weather":"\u591a\u4e91",

"wind":"\u5fae\u98ce",

"temperature":"15\u2103"

},

{

"date":"\u5468\u4e8c",

"dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/yin.png",

"nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/zhenyu.png",

"weather":"\u9634\u8f6c\u9635\u96e8",

"wind":"\u5fae\u98ce",

"temperature":"26 ~ 19\u2103"

},

{

"date":"\u5468\u4e09",

"dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/zhenyu.png",

"nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/zhenyu.png",

"weather":"\u9635\u96e8",

"wind":"\u5fae\u98ce",

"temperature":"25 ~ 20\u2103"

},

{

"date":"\u5468\u56db",

"dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/duoyun.png",

"nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/duoyun.png",

"weather":"\u591a\u4e91",

"wind":"\u5fae\u98ce",

"temperature":"26 ~ 15\u2103"

}

]

}

]

}

将json数据拿去   【百度  json数据解析】  一下就可以看到这样的结果(可以根据解析结果进行数据分析):

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值