Android 天气预报入门

一款优秀的天气播报软件,除了在功能上要达到实时准确预报天气之外,其自带的桌面天气插件还能起到美化桌面的作用,今天小编为大家介绍一下天气预报的简单写法,让您时时刻刻都能够第一时间了解最新的天气动态。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的北海网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1.Android的天气预报的应用还是挺多的,基于JSON和WebServ的均可。

首先我们来介绍基于JSON解析的天气预报的开发
2.这需要寻找到合适的数据源。

     这里使用的是http://www.weather.com.cn/(中央气象局)的数据信息。可通过 m.weather.com.cn/data/101010100.html或者www.weather.com.cn/data/cityinfo /101010100.html查看到北京的天气信息。

3.接下来就是对JSON数据的解析

 
 
 
  1. package com.cater.weather; 
  2. import java.io.IOException; 
  3. import org.apache.http.HttpResponse; 
  4. import org.apache.http.HttpStatus; 
  5. import org.apache.http.client.ClientProtocolException; 
  6. import org.apache.http.client.HttpClient; 
  7. import org.apache.http.client.methods.HttpGet; 
  8. import org.apache.http.impl.client.DefaultHttpClient; 
  9. import org.apache.http.util.EntityUtils; 
  10. import org.json.JSONException; 
  11. import org.json.JSONObject; 
  12. import android.app.Activity; 
  13. import android.os.Bundle; 
  14. import android.widget.EditText; 
  15. import android.widget.TextView; 
  16. public class WeatherReportActivity extends Activity 
  17. private final static String url = "http://m.weather.com.cn/data/101010100.html"; 
  18. private HttpClient httpClient; 
  19. private HttpResponse httpResponse; 
  20. private HttpGet httpGet; 
  21. private EditText editText; 
  22. private TextView textView; 
  23. private String today; 
  24. private String dayofweek; 
  25. private String city; 
  26. private int ftime; 
  27. private String template; 
  28.  
  29. @Override 
  30. public void onCreate(Bundle savedInstanceState) 
  31. super.onCreate(savedInstanceState); 
  32. setContentView(R.layout.main); 
  33. editText = (EditText) findViewById(R.id.editText1); 
  34. textView = (TextView) findViewById(R.id.textView1); 
  35. httpClient = new DefaultHttpClient(); 
  36. parseString(getRequest(url)); 
  37. editText.setText(getRequest(url)); 
  38. textView.setText("城市:" + city + "\n" 
  39. +"温度:" + template + "\n" 
  40. +"星期:" + dayofweek + "\n" 
  41. +"时间:" + ftime + "\n" 
  42. +"日期:" + today + "\n"); 
  43.  
  44. private String getRequest(String uri) 
  45. httpGet = new HttpGet(uri); 
  46. String result = ""; 
  47.  
  48. try 
  49. httpResponse = httpClient.execute(httpGet); 
  50. if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) 
  51. result = EntityUtils.toString(httpResponse.getEntity()); 
  52. return result; 
  53. catch (ClientProtocolException e) 
  54. e.printStackTrace(); 
  55. catch (IOException e) 
  56. e.printStackTrace(); 
  57. return null; 
  58. private String parseString(String str) 
  59. try 
  60. JSONObject jsonObject = new JSONObject(str).getJSONObject("weatherinfo"); 
  61. today = jsonObject.getString("date_y"); 
  62. dayofweek = jsonObject.getString("week"); 
  63. city = jsonObject.getString("city"); 
  64. ftime = jsonObject.getInt("fchh"); 
  65. template = jsonObject.getString("temp1"); 
  66. catch (JSONException e) 
  67. e.printStackTrace(); 
  68. return null; 

一款简单的天气预报就做好了!如果你是一个爱学习的人,并耐心的看完了本文的话,希望本文对你有所帮助!

分享文章:Android 天气预报入门
网页网址:http://www.shufengxianlan.com/qtweb/news6/115456.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联