手机网站模板下载,wordpress文章同步微信,最新软件推广,济南做网站哪里好10天学安卓-第二天 原文:10天学安卓-第二天继续我们的学习。 相信我#xff0c;第一天的工作是最为重要的#xff0c;通过这些工作#xff0c;我们把开发安卓所必须的环境、基础条件都配置好了#xff0c;相信肯定遇到了很多问题#xff0c;不过#xff0c;根据我的经验第一天的工作是最为重要的通过这些工作我们把开发安卓所必须的环境、基础条件都配置好了相信肯定遇到了很多问题不过根据我的经验您会很快解决这些问题的。在第一天的最后我们终于运行了第一个应用-“Hello, world”。 理论知识 下面我们学习一些理论知识了解一下安卓系统的架构、组件有了一些基础知识才不会感觉迷惑。 先看下整个项目的目录每个目录都有特定的作用分别如下 src目录存放源代码文件。gen目录由ADT插件自动生成的R.java文件。assets目录存放资源文件目录。此目录的文件不会在R.java中生成资源ID不会被编译为二进制必须使用/assets开始的相对路径按照文件的方式进行访问可以使用AssetManager 结合其他类进行访问。res目录存放资源文件目录,这里面的每个文件或值都会在R.java中生成一个ID(变量)res/drawable-xxxx是存放图片的目录res/layout是放置布局文件xml文件的目录每个Activity对应一个XML文件res/values是放置存储值的文件xml的目录res/values/strings.xml 存放键值对,一般用在程序的多语言版本切换多个文件键一样值不同res/values/dimens.xml 尺寸res/values/styles.xml 样式AndroidManifest.xml是整个应用程序的配置文件,储存一些 包名版本号程序图标程序标签等。project.properties由ADT插件自动生成不能修改修改将被删除。 对于项目结构有了初步的了解之后我们就可以有目的的开始我们的工作了。接下来的10天我们将一步一步实现一个完整的天气预报应用请注意是完整的而不只是Demo。 我们最终的页面效果如下所示 任务分解 不要被吓到不管现在看起来多么复杂这终究会从我们的手中实现。为了实现这样的一个应用我们需要分为一个一个小项目这样看起来就不是那么庞然大物我们心里底气也足了。 如果您曾经做过项目管理相关工作的话那么对于WBS工作分解结构一定很熟悉了我们的应用规模不算大可以分解为如下小项目 1. 学习调用HTTP接口将返回的JSON数据封装为Java类并且最终将天气数据展示到页面上 2. 学习使用百度地图SDK定位当前位置并将当前位置信息保存为本地数据 3. 如果没有网络我们就没办法查看天气了吗这当然是有问题的我们要把天气数据保存到本地数据库并且默认显示本地数据 4. 美化UI 在这短短的10天内我们要把这些工作都做完不要犯怵Follow me 千里之行始于足下 新建一个工程Application Name填WeatherPackage Name填com.demo.weatherSDK各个项目的选择如下 选择好之后就一路点击【Next】直到我们的项目建好为止建好的项目应该是这样子的 打开res/layout/activity_main.xml在Eclipse中应该是这个样子的 注意视图的下方有两个Tab选项卡【Graphical Layout】是图形视图【activity_main.xml】是代码视图我们切换为代码视图在TextView处添加一行代码 android:idid/weather 这样我们就可以在代码中使用findViewById方法找到这个TextView控件不过为了代码的美观我们将使用另外的办法。 使用第三方组件 大家都知道Android是开源的所以就有很多具有奉献精神的牛人把自己的经验、收获分享给大家这就是很多很多的开源代码、组件、框架。 在这里我们引入第一个开源组件——xUtils可以在https://github.com/wyouflf/xUtils这里查看它的详细说明。 首先下载jar包并且导入到我们的工程里面说起来麻烦做起来那是相当简单。下载地址https://github.com/wyouflf/xUtils/blob/master/xUtils-2.6.11.jar然后将下载下来的文件放到工程项目的libs文件夹就可以了。 如何在项目中使用呢 如果大家懒得看xUtils的文档那就跟着我一步一步做就好了。 打开src目录下com.demo.weather的MainActivity文件添加一个变量可以命名为txtWeather。 ViewInject( R.id.weather )
private TextView txtWeather; 这样我们就可以在代码中使用TextView这个控件了。 接下来我们看一下onCreate方法这个方法现在只有两行代码 super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main ); 其中第一行调用父类的onCreate方法进行界面的绘制第二行就是加载界面这两行代码在所以的Activity的子类都是需要调用的除非你不在界面显示任何内容。 onCreate方法有一个参数savedInstanceState关于这个我们稍后细说先说第二行代码 setContentView( R.layout.activity_main ); R.layout.activity_main指向了res/layout/activity_main.xml这个文件这样界面就知道应该加载这个界面文件了。可能大家都Activity是什么还有些疑惑不要紧这些理论知识我们明天再说今天我们的任务就是把天气数据显示到界面上。当然我们自己是不知道天气预报数据的不过万能的互联网什么都有百度就提供了这方面的数据。 官方文档http://developer.baidu.com/map/index.php?titlecar/api/weather 一个例子http://api.map.baidu.com/telematics/v3/weather?location%E5%8C%97%E4%BA%ACoutputjsonakYknGmxIoPugT7YrNrG955YLS 好了万事俱备只欠代码。如何把天气显示到界面上总共分三步 1. 在界面上放置一个TextView用于显示文字这个我们已经完成了。 2. 调用百度地图的API获取天气数据这个我们接下来就要做。 3. 把数据显示到界面上。 松了一口气喝杯茶休息十分钟吧接下来会有大段的代码等着你来完成。 休息好了吧我们马上开工。 在onCreate方法的setContentView下面添加以下代码 ViewUtils.inject( this );HttpUtils http new HttpUtils();RequestParams params new RequestParams();params.addQueryStringParameter( location, 北京 );params.addQueryStringParameter( output, json );params.addQueryStringParameter( ak, YknGmxIoPugT7YrNrG955YLS );http.send( HttpMethod.GET, http://api.map.baidu.com/telematics/v3/weather, params, new RequestCallBackString(){Overridepublic void onSuccess( ResponseInfoString responseInfo ){String weather responseInfo.result;txtWeather.setText( weather );}Overridepublic void onFailure( HttpException arg0, String arg1 ){String weather arg1;txtWeather.setText( weather );}} ); 并且删除onCreateOptionsMenu方法。 保存吧一大段的代码一大片的红叉呵呵不着急慢慢来那是因为我们使用了第三方组件的原因一项一项把缺失的引用添加进来就可以了。如果你嫌麻烦那么复制这几行代码吧。 import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.view.annotation.ViewInject; 这下大家满足了吧一切看起来都是那么的顺利和完美来运行程序。 你看到的可能是这样的内容 java.io.IOException: Permission denied (missing INTERNET permission?) 为什么为什么为什么 辛辛苦苦XX都X了你就让我看这个。 不着急不着急上面写得很明白没有访问网络的权限那么在项目里面找到AndroidManifest.xml这个文件添加一行代码即可。 uses-permission android:nameandroid.permission.INTERNET / 把这行代码加到 application 的前面就可以了好了一切都OK了。运行吧。 这下界面上显示的就是一大堆天气的数据了。 如果显示的还不正确那么请仔细检查一下是否有遗漏的代码是否真的可以连上网络。 如果您可以正确的显示上面那一大堆字符并且能正确理解那一大堆字符的意义并且对于界面什么的也没有要求的话那么我们的天气预报APP就可以给自己独家使用了。很有成就感了是不是不过这样的应用除了自己谁会用呢恐怕连自己也是看都不想看吧。 如果您有更要的要求那么明天我们继续。 附件是本次的工程文件点击下载。 posted on 2015-02-02 09:06 NET未来之路 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/lonelyxmas/p/4266783.html