免费天气预报API:https://www.juhe.cn/docs/api/... ,通过此获取APPKEY

Android解析聚合数据之天气预报API_第1张图片

MainActivity.java

package com.example.networktest;         import java.io.BufferedReader;    import java.io.IOException;    import java.io.InputStream;    import java.io.InputStreamReader;    import java.net.HttpURLConnection;    import java.net.MalformedURLException;    import java.net.URL;    import java.net.URLEncoder;         import org.json.JSONArray;    import org.json.JSONException;    import org.json.JSONObject;         import android.app.Activity;    import android.os.Bundle;    import android.os.Handler;    import android.os.Message;    import android.util.Log;    import android.view.View;    import android.view.View.OnClickListener;    import android.widget.Button;    import android.widget.TextView;         public class MainActivity extends Activity {        private Button sendRequest;        private TextView responseText;        public static final int SHOW_RESPONSE = 0;        private Handler handler = new Handler() {                 public void handleMessage(Message msg) {                switch (msg.what) {                case SHOW_RESPONSE:                    String response = (String) msg.obj;                    // 在这里进行UI操作,将结果显示到界面上                    responseText.setText(response);                }            }             };             @Override       protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.activity_main);            sendRequest = (Button) findViewById(R.id.send_request);            responseText = (TextView) findViewById(R.id.response);            sendRequest.setOnClickListener(new OnClickListener() {                @Override               public void onClick(View arg0) {                    sendRequestWithHttpURLConnection();                }            });        }             protected void sendRequestWithHttpURLConnection() {            new Thread() {                @Override               public void run() {                    URL url;                    HttpURLConnection connection = null;                    try {                        // url = new                        // URL("http://10.2.5.119:8080/Server/getData.json");                        String cityName = URLEncoder.encode("滨州", "utf-8");                        url = new URL(                                "http://v.juhe.cn/weather/index?format=2&cityname="                                       + cityName                                        + "&key=ab9d7e2007472d723baf71fcdc4ba094");                        connection = (HttpURLConnection) url.openConnection();                        connection.setRequestMethod("GET");                        connection.setConnectTimeout(8000);                        connection.setReadTimeout(8000);                        InputStream in = connection.getInputStream();                        // 下面对获取到的输入流进行读取                        BufferedReader reader = new BufferedReader(                                new InputStreamReader(in));                        StringBuilder response = new StringBuilder();                        String line;                        while ((line = reader.readLine()) != null) {                            response.append(line);                        }                        System.out.println("response=" + response.toString());                        //parseWithJSON(response.toString());                        parseWeatherWithJSON(response.toString());                        Message message = new Message();                        message.what = SHOW_RESPONSE;                        // 将服务器返回的结果存放到Message中                        message.obj = response.toString();                        handler.sendMessage(message);                    } catch (MalformedURLException e) {                        e.printStackTrace();                    } catch (IOException e) {                        e.printStackTrace();                    } finally {                        if (connection != null) {                            connection.disconnect();                        }                    }                }            }.start();             }             protected void parseWeatherWithJSON(String response) {            try {                JSONObject jsonObject=new JSONObject(response);                String resultcode=jsonObject.getString("resultcode");                if(resultcode.equals("200")){                    JSONObject resultObject=jsonObject.getJSONObject("result");                    JSONObject todayObject=resultObject.getJSONObject("today");                    String date_y=todayObject.getString("date_y");                    String week=todayObject.getString("week");                    String temperature=todayObject.getString("temperature");                    Log.d("MainActivity", "date_y="+date_y+"week="+week+"temp="+temperature);                }                             } catch (JSONException e) {                e.printStackTrace();            }        }             protected void parseWithJSON(String response) {            try {                JSONArray jsonArray = new JSONArray(response);                for (int i = 0; i < jsonArray.length(); i++) {                    JSONObject jsonObject = jsonArray.getJSONObject(i);                    String id = jsonObject.getString("id");                    String name = jsonObject.getString("name");                    String version = jsonObject.getString("version");                    Log.d("MainActivity", "id=" + id + "name=" + name + "version="                           + version);                }            } catch (JSONException e) {                e.printStackTrace();            }        }         }  

activity_main.xml

        

更多相关文章

  1. android很简单的天气预报例子和XML解析
  2. Android实验九之天气预报
  3. Android实现天气预报温度/气温折线趋势图
  4. android 天气预报
  5. Android应用实例之----天气预报程序
  6. 关于android 天气预报的源码

随机推荐

  1. Xamarin Android开发实战(上册)
  2. android webview js交互, 响应webview中的
  3. 6.0 M系统权限处理之Dexter
  4. Android(安卓)学习之路3
  5. Android中System.exit(0)退出失败
  6. 使用VirtualBox安装Android(安卓)4.2.2 x
  7. Android精简小笔记(2):广播机制
  8. 在移动端开发中,容易遇到的问题集合。
  9. 【Android(安卓)Studio 4.0.0】高版本And
  10. 虚拟导航(NavigationBar)栏适配