我是一位经验丰富的.NET / iOS开发人员,他在Android开发中迈出了第一步 - 帮助我避免走错路,我会感激一些指导:
基本上,我有一个应用程序,可以在地图/列表中显示位置。当用户在地图上滚动时,将从JSON Web服务获取位置。可以点击位置,此时调用另一个JSON Web服务以检索该位置的实时信息。然后显示实时信息。
所以,在阅读各种“入门”Android文档后,我想我需要:
我非常感谢你的帮助,因为我感到有些失落!
卡洛斯
PS:我将开发Mono for Android,除非有足够的人建议反对答案 0 :(得分:1)
第1点和第2点:您可以使用Fragments更新部分屏幕,Activity将充当多个片段的容器(使用兼容性库将片段反向移植到API级别10或更低
< / LI>您应该使用AsyncTask而不是服务从远程Web服务获取位置
AsyncTask有一个回调onPostExecute(..),它将在完成远程提取时被调用,这可用于更新List,Maps或Fragments
答案 1 :(得分:1)
1。您可以使用MapActivity进行地图视图;
2。使用Activity和place listView在单个视图中包含按钮而不是ListActiviy
3.请按照位置更新程序教程
的链接进行操作http://www.vogella.de/articles/AndroidLocationAPI/article.html
4。使用地图叠加技术进行信息显示
如果您在完成任务后想要任何建议,请发表评论
答案 2 :(得分:1)
显示位置主地图视图的活动
是
显示列表视图的第二个Activity?这些似乎很奇怪,因为我 得到每个活动必须是整个屏幕的印象 该应用程序。我想坚持其他UI元素。 (例如按钮到 切换视图,设置按钮等)这可能吗?
不一定如此。看看Fragments API。它允许您仅切换UI的部分内容。它是在Android 3.0中引入的,但它有一个官方的后端,所以你也可以在以前的Android版本中使用它。
有了它,您可以将按钮放入活动,将地图放在一个片段中,将列表放在另一个片段中,然后只需在保留按钮的同时用列表切换地图。
服务(或IntentService?)从Web检索位置。 它应该如何让Activity和ContentProvider在新的时候知道 已经检索了位置 - 通过广播或它们应该绑定到 它?
我强烈反对这一点。如果您在后台有长时间的下载,则应使用服务,例如下载文件或其他内容。短期JSON请求可以并且应该在UI过程中处理。使用AsyncTask或Executor即可。谷歌已经建议将几乎所有的请求都放入服务中,但请相信我,这是公牛。
ContentProvider,用于缓存和保留我的位置。也许是 内容提供者应在新数据播放时播放活动 可以显示?
不需要。如果您打算让其他应用程序或系统可以访问您的内容,则您只需要ContentProvider。对于HTTP缓存,您可以直接访问数据库/文件系统,或者更好的是,使用Apache HTTP Client Cache。如果您使用已经嵌入的Apache HTTP Client,则可以正常工作。