Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use Android aggregate data to realize Weather Forecast

2025-01-17 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

这篇文章主要介绍"如何使用Android聚合数据实现天气预报",在日常操作中,相信很多人在如何使用Android聚合数据实现天气预报问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用Android聚合数据实现天气预报"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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

到此,关于"如何使用Android聚合数据实现天气预报"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report