Android上实现一个简单的天气预报APP(三) 获取网络数据
2017-02-25 11:36
1066 查看
学习参考资源:https://www.gitbook.com/book/zhangqx/mini-weather/details
前面我们已经配置好了界面布局,显示布局上的数据都是我们胡乱加载的,接下里我们要将这些数据更新为网络上的真实数据
运行一下!
接下来我们要将这个网页上的数据获取下来。
运行一下!
前面我们已经配置好了界面布局,显示布局上的数据都是我们胡乱加载的,接下里我们要将这些数据更新为网络上的真实数据
1)检查网络连接状态
1.新建一个java类CheckNet
我们使用ConnectManager类的getSystemService方法,获取网络连接状态值package com.example.xchen.mweather; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; /** * Created by xchen on 16/12/17. */ public class CheckNet { public final static int NET_NONE = 0; public final static int NET_WIFI = 1; public final static int NET_MOBILE = 2; public static int getNetState(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if(networkInfo == null) return NET_NONE; int type = networkInfo.getType(); if(type == ConnectivityManager.TYPE_MOBILE) return NET_MOBILE; else if(type == ConnectivityManager.TYPE_WIFI) return NET_WIFI; return NET_MOBILE; } }
2.在MainActivity中使用这个类,判断网络状态
3.在manifest中,打开查看网络状态权限
运行一下!
2)获取网络上的数据
现有一个天气预报发布网站:http://wthrcdn.etouch.cn/WeatherApi?citykey=101010100(后面的101010100是城市代码),这个网站上实时更新天气信息,页面如下:接下来我们要将这个网页上的数据获取下来。
1.借助HttpUrlConnection(java.net.HttpUrlConnection),获取Url网页上的数据。
新建一个函数名为getWeatherDatafromNet(String),如下private void getWeatherDatafromNet(String cityCode) { final String address = "http://wthrcdn.etouch.cn/WeatherApi?citykey="+cityCode; Log.d("Address:",address); new Thread(new Runnable() { @Override public void run() { HttpURLConnection urlConnection = null; try { URL url = new URL(address); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(8000); urlConnection.setReadTimeout(8000); InputStream in = urlConnection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuffer sb = new StringBuffer(); String str; while((str=reader.readLine())!=null) { sb.append(str); Log.d("date from url",str); } String response = sb.toString(); Log.d("response",response); }catch (Exception e) { e.printStackTrace(); } } }).start(); }
2.在MainActivity的onCreate方法中调用该方法
3.在Manifest中打开Internet访问权限
运行一下!
相关文章推荐
- Android上实现一个简单的天气预报APP(六) 更新界面数据
- Android上实现一个简单的天气预报APP(八) 从数据库读取城市数据
- Android上实现一个简单的天气预报APP(九) ListView展示城市列表、单击更新天气数据
- Android 端天气预报APP的实现(五)全国各地城市数据的获取
- Android上实现一个简单的天气预报APP(一) 设计
- Android上实现一个简单的天气预报APP(十) 城市列表搜索框
- 【Android 网络数据解析实现一个简单的新闻实例(一)】
- Android上实现一个简单的天气预报APP(二) 配置布局
- 一个简单的Android客户端从服务器端获取json数据并解析的实现代码
- Android上实现一个简单的天气预报APP(七) 切换到新的界面(选择城市界面)
- Android上实现一个简单的天气预报APP(十一) Preference存储最近一次查询的城市
- Android上实现一个简单的天气预报APP(十二) 未来三天的天气预报
- Android上实现一个简单的天气预报APP(十三) 导航ViewPager
- Android上实现一个简单的天气预报APP(四) 添加按钮点击响应
- Android上实现一个简单的天气预报APP(十四) 使用百度API定位城市
- 【Android 网络数据解析实现一个简单的新闻实例(一)】
- Android上实现一个简单的天气预报APP(五) 解析XML
- Android上实现一个简单的天气预报APP(十五) 发布天气预报APP
- Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用
- android获取网络图片简单实现