安卓实战案例入门教程
这是一个 TMDb API 真实项目的安卓源码,点按下面标题下载相应源码:
界面:
假设搜索电影的URL是:http://api.themoviedb.org/2.1/Movie.search/en/xml/APIKEY/Transformers
搜索人名的URL是:
http://api.themoviedb.org/2.1/Person.search/en/xml/APIKEY/Brad+Pitt
这个程序使用基于 Apache Commons HTTP 客户端包。
假设XML文件是这样。这是搜索电影Transformers” 和 “2007”的结果。
XML可以使用SAX或DOM解析。 SAX规范定义了一个基于事件的方法来实现解析器XML数据,并通过扫描,当某些部分的文档已经扫描完成,使用回调处理程序。而DOM规范定义基于树的导航阅读整个XML文档的方法。
一般来说,SAX的用法是更大的挑战,因为该API需要发展处理事件的回调函数,而DOM方法需要更大的内存占用。出于这个原因,我们要选择SAX的XML解析器实现。
Part 4: 从main activity实现API的异步调用
当向云端API异步调用时,界面显示:
这是使用安卓的Asnc Task。
解析了来自服务器端的XML响应,如何根据其加载新的活动页面显示呢?
使用Intent,我们使用Intent类构造器加入一个上下文和目标类. 这种直接硬加载指定类名称的方法类似反射。
...
Intent intent =
new Intent(MovieSearchAppActivity.this, MoviesListActivity.class);
intent.putExtra("movies", result);
startActivity(intent);
...
运行界面如下:
点击进入,出现IMDB 页面:
之前数据展示比较丑陋,优化显示结果如下:
我们在上面界面下加上可选操作按钮:
点按查看完整图片,出现效果:
AppWidget 是一个让开发者开发widget的框架,通过该源码,可以让用户加入窗口小工具:
选择我们的应用窗口:
加入后效果:
如果你点击电影名称,将激活浏览器加载到IMDB相应的电影页面。