233333,我又回来了!今天是开发APP的第二天,回顾昨天开发的结果,发现只是加上了一个炫酷的PagerSlidingTabStrip库,以及SwipeRefreshLayout库,在UI上有了一些初步的建树!但离我的预期还有很远的距离。于是,经过昨天我彻夜难眠(→_→其实是失眠)终于想好了今天的重头戏是什么:一、加上网络请求访问,二、在界面下面添加一个可以选择模块的地方,这么一看就是要向“今日头条”靠近了,是的就是这样!!
好,先开始加上网络请求访问。说起网络请求,那当然先要来个网络状态判断咯,于是在Utility包下建个networkUtil类,搞上网络状况判断的工具函数吧,come on!别忘了还要在AndroidManifest.xm 上添加上权限!
判断完网络情况,就开始写网络请求HttpURLConnection,这个是一个耗时的任务,所以需要再写一个AysnTask来后台运行。由于先做的是新闻模块,就有新闻列表和新闻详情两个模型,所以需要写两个AysnTask(一个LoadNewsTask、一个LoadNewsDetailsTask)来封装,当然也可以直接一个AysnTask来写直接返回String值,然后交给逻辑层去处理。当然说到网络访问,用Volley也未尝不可,而启动后台load函数也可以用handle来处理,反正方法很多,不仅仅不限于现在所用的HttpURLConnection+AysnTask来处理后台的整个Load新闻的过程。
当然,查看新闻嘛,少不了来点图片,这里用了universal-image-loader,今天有一段比较长的时间就是耗在这了。由于是新手,出现问题往往不能马上找到大致可能出现问题的地方,所以又在那捯饬了半天,跟了半天Code,发现给ListView的ArrayAdapter<T>的getView函数一直不能进去,度娘了一下有人说如果View的UI结构太复杂会导致不能讲Item显示出来,于是乎就将Image+Title的Item只改为Title显示,结果View真的刷出来了!!!感慨万分之余,想到,什么UI结构太复杂导致Item不显示,这个理由太不能让人信服了,再看看,于是又开始分析猜测应该是Image出了什么问题!!
发现imageLoader.displayImage(news.getImage(), holder.newsImage,options); 这句话很有嫌疑,这个不就是universal-image-loader库里面load Image的方法嘛,怎么会出问题,于是我又仔细检查了一下,原来自始至终我都没有init imageLoad-----额(⊙o⊙)…于是,又兴奋的建了一个Application类,并写入到AndroidManifest.xml上(注意这个别忘了,不然新建的Application类是不能被程序应用的),然后在Application类里面去初始化ImageLoader!
在这里推荐一个讲universal-image-loader的博文:http://blog.csdn.net/hantangsongming/article/details/41961749
好啦,网络请求写好了-->数据请求回来后的json解析(使用Gson 和JsonObject解析)工具类写好了-->解析出来的模型类的实体对象生成了,接下来就是讲数据绑定的ListView上了,当然不能直接绑定,需要通过ArrayAdapter<T>适配器来绑定,再将这个ListView放置到Fragment中显示,大功告成!!总结一下在开发中,遇到了一些问题,比如 AndroidManifest.xml该注册的权限没有写,新建Activity有的时候没有也没有在xml中注册,这些问题都需要注意,别忘记了。
程序写到这里,差不多小东西都齐全了,手痒痒的,就想生成一个apk文件!说来就来,甩个博文http://blog.csdn.net/sunylat/article/details/9239595,分分钟生成一份apk文件。
嗯,看起来不错。接下来想给UI界面装个”下肢“,因为用了PagerSlidingTabStrip,使得界面整个就是几个Viewpage并不是很好看,需要在下面配置几个栏目。
网友评论