Android开发手记开发自习助手
apk下载地址
平时去自习的话,经常发现坐还没一个小时,发现这个班要上课,踮手踮脚地去找下一间。如果有个应用,掏出手机就能看到,全天都空的自习教室、全上午都没课的教室、全下午都没课的教室,该多好。于是,应用诞生了。features有:
1)根据教务处信息,提供北京林业大学最新的空课室信息。
2)提供空课室列表,分全上午没课,全下午没课,晚上没课课室列表。
3)根据当前时间,智能推荐课室,比如下午1点,显示的全下午没课的课室。
4)楼层低的课室排在列表前面。
简略总结一下开发这个应用学到的一些知识。总结对自己最有好处,如果能帮助别人那更好。
首先,教务处网站提供了空课室信息,如图。
折腾了两天后,就是上面那幅图的样子。
一开始抓取用的是字符串的基本处理方法,先把所有数字得到,然后因为课室号都是三位数字的,然后舍去前面一些,就搞到了。
怎样得到从字符串得到所有的数字呢?
像这样。
输入:782sjfk2382kjfsdlkfj382
输出:[782,2382,382]
"[^0-9]+"是正则表达式,[^0-9],表示匹配一个除了0到9的字符,+表示匹配前面的表达式一次或多次。看图就一下子明白了。
所以之后的split,分隔字符串,就得到数字的字符串数组。尤其值得一提的是这个“+”,因为网页里,非数字字符特别多。
若用[^0-9],
所以,上面的判断的语句没什么必要,即if判断可省略:
这里的print也有一点神奇:
...表示不定长参数。作为从Lisp刚转过来学Android的人,对这个就感觉特别亲切。java语言的一大制订者Guy Steele精通很多门语言,也是Common Lisp的语言制订者。Lisp中:
只要用一个&rest就行了。还有&optional参数,让某个参数是可选的。&key让某个参数成为关键字。&rest经常和Macro结合来用。
后来学聪明了,用起了jsoup,加入Android的时候,要这样:
放到libs文件夹下,再刷新一下。下面方式很出错,
说是什么api更新后这样做不会自动把jsoup包囊括进来。
看这个html:
想获得所有的文本,可以用:
一些代码片段:
其中,src.attr("abs:src"),表明获得src的绝对地址。而上面src="y18.gif",是相对地址。
上面片段改编自这里。
自定义标题及标题栏视图:
判断是否联网:
日期加法函数:
计算相隔的天数:
得到网页内容:
使用bundle在Activity中传递数据:
使用spinner:
SharedPreferences:
在另外一个Activiy中:
更新ListView:
总的来说,判断内容更新+jsoup网页抓取+Spinner+ListView。
Github地址
Android开发手记开发自习助手相关推荐
- ldflags android,Android 开发手记一 NDK编程实例
Android开发手记一 ---- NDK编程实例 在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Dev ...
- android 布局中绘制语音曲线,基于android平台的老年人用药助手软件的开发-仪器仪表工程专业论文.docx...
基于android平台的老年人用药助手软件的开发-仪器仪表工程专业论文 Classified Index: TP319 U.D.C: 004.45 Dissertation for the Degre ...
- android 大学生生活助手,基于Android的大学生生活小助手设计与开发.doc
基于Android的大学生生活小助手设计与开发 基于Android的大学生生活小助手设计与开发 摘要当今社会,大学生受到的社会关注度非常之高,其带来的市场需求和消费能力也一直是各行各业的商家强烈重视的 ...
- 《Android 应用案例开发大全(第二版)》——导读
本节书摘来自异步社区<Android 应用案例开发大全(第二版)>一书中的目录 ,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区"异步社区"公众号查 ...
- Unity 2D独立开发手记(九):UGUI仿GTA地图系统
一直觉着GTA的小地图很方便,在地图上的图标能够实时反映出各种任务点.设施等的方位,那么我也仿照它的地图系统做一个简陋的. 还有,提前说一下,这篇文章面向至少用UGUI做过按钮点击事件的读者,因为一些 ...
- 开心网辅助程序开发手记
<开心网辅助程序开发手记> 系列导读: 开心网辅助程序开发手记 开心网辅助程序开发手记(二):获取好友私家车位信息 开心网辅助程序开发手记(三):实现停车功能 开心网辅助程序开发手记(四) ...
- Android Swift iOS开发:语言与框架对比
转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...
- 安安猜价格聪明机器人_APPInventor:零基础Android移动应用开发
第1章Android与AppInventor 1.1Android平台简介 1.2AppInventor简介 1.3用AppInventor开发App的过程 1.4访问AppInventor2开发平台 ...
- android开发大全,Android应用案例开发大全
1.技术新颖,贴近实战n 本书涵盖了现实中几乎所有的流行技术,如传感器.OpenGL ES 3.0.增强现实.动态壁纸.LBS百度地图的二次开发.移动办公.实时流体仿真计算引擎.服务端和Android ...
最新文章
- /proc/diskstats各字段解析
- flask 快速入门链接
- sql server 判断是否存在数据库,表,列,视图
- win7纯净版系统锁定系统时间的设置方法
- M1芯片MacBook pro重装系统出现报错情况的解决方法
- (93)异步FIFO结构,为什么用格雷码? ,面试必问(十七)(第19天)
- 【LeetCode】【HOT】102. 二叉树的层序遍历(队列)
- IDEA工作常用快捷键
- etcdctl的使用
- Remove advertisement of Storm 5
- Mac镜像创建方法简介
- arcgispython空间插值_[学习总结]如何利用GIS建模批量处理气象数据-以micaps 第四类数据空间插值为例-专业气象研究-气象家园_气象人自己的家园...
- 区块链开发教程系列【加精】
- 只有1kb的清理软件_教您清理1kb快捷方式病毒
- java开发加入购物车功能_java web开发——购物车功能实现
- MySql(三)——事务和锁
- 百练2815:城堡问题题解 深度优先搜索解法
- 人工蜂群算法python_python实现人工蜂群算法
- Pycharm 解决 Backend TkAgg is interactive backend. Turning interactive mode on.提示
- 爬取迷你mp4各个电影信息