Android 天气应用开发
百度 API Store中很多免费的天气API,因此写一个天气应用相对变得很容易。
首先尝试API给的接口,接受返回数据。
- public class MainActivity extends Activity implements View.OnClickListener, Runnable {
- static String TAG = "Weather";
- Button getWeather;
- TextView showJson;
- private static Handler myHandler;
- Thread networkThread;
- String httpUrl = "http://apis.baidu.com/heweather/weather/free";
- String httpArg = "city=dalian";
- String jsonResult;
- boolean threadIsAlive;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- getWeather = (Button) findViewById(R.id.getWeather);
- getWeather.setOnClickListener(this);
- showJson = (TextView) findViewById(R.id.showJson);
- showJson.setMovementMethod(ScrollingMovementMethod.getInstance());
- networkThread = new Thread(this);
- myHandler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- showJson.setText(jsonResult);
- return true;
- }
- });
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.getWeather:
- if (!threadIsAlive) {
- networkThread.start();
- threadIsAlive = true;
- }
- break;
- default:
- break;
- }
- }
- @Override
- public void run() {
- jsonResult = request(httpUrl, httpArg);
- myHandler.sendEmptyMessage(0);
- // Log.i(TAG, jsonResult);
- }
- /**
- * @param httpUrl :请求接口
- * @param httpArg :参数
- * @return 返回结果
- */
- public static String request(String httpUrl, String httpArg) {
- BufferedReader reader;
- String result = null;
- StringBuffer sbf = new StringBuffer();
- httpUrl = httpUrl + "?" + httpArg;
- try {
- URL url = new URL(httpUrl);
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setRequestMethod("GET");
- // 填入apikey到HTTP header
- connection.setRequestProperty("apikey", "apikey请在百度开发者个人中心-个人信息中查看");
- connection.connect();
- InputStream is = connection.getInputStream();
- reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
- String strRead;
- while ((strRead = reader.readLine()) != null) {
- sbf.append(strRead);
- sbf.append("\r\n");
- }
- reader.close();
- result = sbf.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return result;
- }
- }
a、Android的框架及其优缺点掌握,每层的优化点明确
b、开发的方式设计review参加
c、只能端末开发的风险、技术等调查。主要着眼于技术及与技术相关的实例、注意事
项、业界动态等。每月一次介绍及分享。
D、向嵌入式基板的移植,以及中间件、驱动的开发
Android 天气应用开发的更多相关文章
- Android经典项目开发之天气APP实例分享
原文:Android经典项目开发之天气APP实例分享 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mzc186/article/details/5 ...
- Android Wear(手表)开发 - 学习指南
版权声明:欢迎自由转载-非商用-非衍生-保持署名.作者:Benhero,博客地址:http://www.cnblogs.com/benhero/ Android Wear开发 - 学习指南 http: ...
- Android之AppWidget 开发浅析
什么是AppWidget AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图: 图中我用黄色箭头指示的即为AppWidget,一些用户使用比较频繁 ...
- Android应用安全开发之浅谈加密算法的坑
<Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题 Android开发中,难免会遇到需要加解密一些数据内 ...
- [转]Android样式的开发:shape篇
转载自Keegan小钢原文链接:http://keeganlee.me/post/android/20150830 Android样式的开发:shape篇Android样式的开发:selector篇A ...
- Android之NDK开发(转)
Android之NDK开发 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- 提供给Android和iOS开发人员的UWP移植向导
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:前几天微软发布了一个针对Android和iOS开发人员理解Windows Apps概念 ...
- Android插件化开发
客户端开发给人的印象往往是小巧,快速奔跑.但随着产品的发展,目前产生了大量的门户型客户端.功能模块持续集成,开发人员迅速增长.不同的开发小组开发不同的功能模块,甚至还有其他客户端集成进入.能做到功能模 ...
随机推荐
- (转载)delphi checklistbox用法
delphi checklistbox用法 在Delphi中checklistbox中高亮选中(不论是否Checked)能够进行操作么?删除,上下移动等等 删除:CheckListBox.Delete ...
- zoom 用法
from: http://www.jb51.net/css/40285.html 其实Zoom属性是IE浏览器的专有属性,Firefox等浏览器不支持.它可以设置或检索对象的缩放比例.除此之外,它还有 ...
- Memcached(七)Memcached的并发实例
1. Memcached是什么?Memcached是分布式的内存对象缓存系统. 2. Memcached的基本数据结构是什么?Memcached是基于Key/Value对的HashMap.每一对,都 ...
- Linux fdisk 命令
Linux fdisk 命令 fdisk fdisk功能说明:磁盘分区.语 法:fdisk [-b <分区大小>][-uv][外围设备代号] ...
- jQuery滑动导航菜单
js: $(function(){ $("ul.sub").parent().append("<span></span>"); $(&q ...
- responsive web design
http://d.alistapart.com/responsive-web-design/ex/ex-site-flexible.html http://alistapart.com/article ...
- Linux +apache+fastcgi运行c/c++
在Linux上搭建apache+fastcgi环境,说多了都是泪啊. 花费我几天时间,开源软件虽说好用,但是版本众多,文档缺乏,什么都只能自己摸索. 终于成功运行起来,特此记录. 一. apache ...
- SQLServer数据类型与C#类型对照表
这是我在开发多层体系结构时遇到的问题,由于VS.NET尚不支持各种数据类型的空值即null, 放入实体类中在各个层之间作为参数传递,所以经查询参考SQL Server 2000的联机丛书和.NET的M ...
- 1880-A. 偷吃可耻
描述 EATER买来一堆好吃的,总共N+1份,共(N+1)/2种,每种准备了两份,同种都标上了相同的编号.本来准备与他家吃货一同分享,结果却发现被人偷吃了..EATER发现总数少了一个,所以你的任务就 ...
- HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值
在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号. name是用来提交数据的,提供给表单用,可以重复: id则针对文档操作时候用,不能重复.如:document ...