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开发手记开发自习助手相关推荐

  1. ldflags android,Android 开发手记一 NDK编程实例

    Android开发手记一 ---- NDK编程实例 在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Dev ...

  2. android 布局中绘制语音曲线,基于android平台的老年人用药助手软件的开发-仪器仪表工程专业论文.docx...

    基于android平台的老年人用药助手软件的开发-仪器仪表工程专业论文 Classified Index: TP319 U.D.C: 004.45 Dissertation for the Degre ...

  3. android 大学生生活助手,基于Android的大学生生活小助手设计与开发.doc

    基于Android的大学生生活小助手设计与开发 基于Android的大学生生活小助手设计与开发 摘要当今社会,大学生受到的社会关注度非常之高,其带来的市场需求和消费能力也一直是各行各业的商家强烈重视的 ...

  4. 《Android 应用案例开发大全(第二版)》——导读

    本节书摘来自异步社区<Android 应用案例开发大全(第二版)>一书中的目录 ,作者 吴亚峰 , 于复兴 , 杜化美,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  5. Unity 2D独立开发手记(九):UGUI仿GTA地图系统

    一直觉着GTA的小地图很方便,在地图上的图标能够实时反映出各种任务点.设施等的方位,那么我也仿照它的地图系统做一个简陋的. 还有,提前说一下,这篇文章面向至少用UGUI做过按钮点击事件的读者,因为一些 ...

  6. 开心网辅助程序开发手记

    <开心网辅助程序开发手记> 系列导读: 开心网辅助程序开发手记 开心网辅助程序开发手记(二):获取好友私家车位信息 开心网辅助程序开发手记(三):实现停车功能 开心网辅助程序开发手记(四) ...

  7. Android Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  8. 安安猜价格聪明机器人_APPInventor:零基础Android移动应用开发

    第1章Android与AppInventor 1.1Android平台简介 1.2AppInventor简介 1.3用AppInventor开发App的过程 1.4访问AppInventor2开发平台 ...

  9. android开发大全,Android应用案例开发大全

    1.技术新颖,贴近实战n 本书涵盖了现实中几乎所有的流行技术,如传感器.OpenGL ES 3.0.增强现实.动态壁纸.LBS百度地图的二次开发.移动办公.实时流体仿真计算引擎.服务端和Android ...

最新文章

  1. /proc/diskstats各字段解析
  2. flask 快速入门链接
  3. sql server 判断是否存在数据库,表,列,视图
  4. win7纯净版系统锁定系统时间的设置方法
  5. M1芯片MacBook pro重装系统出现报错情况的解决方法
  6. (93)异步FIFO结构,为什么用格雷码? ,面试必问(十七)(第19天)
  7. 【LeetCode】【HOT】102. 二叉树的层序遍历(队列)
  8. IDEA工作常用快捷键
  9. etcdctl的使用
  10. Remove advertisement of Storm 5
  11. Mac镜像创建方法简介
  12. arcgispython空间插值_[学习总结]如何利用GIS建模批量处理气象数据-以micaps 第四类数据空间插值为例-专业气象研究-气象家园_气象人自己的家园...
  13. 区块链开发教程系列【加精】
  14. 只有1kb的清理软件_教您清理1kb快捷方式病毒
  15. java开发加入购物车功能_java web开发——购物车功能实现
  16. MySql(三)——事务和锁
  17. 百练2815:城堡问题题解 深度优先搜索解法
  18. 人工蜂群算法python_python实现人工蜂群算法
  19. Pycharm 解决 Backend TkAgg is interactive backend. Turning interactive mode on.提示
  20. 爬取迷你mp4各个电影信息

热门文章

  1. Android 在线音乐播放器
  2. 安装驱动出现inf服务无效
  3. cad的文字嵌入线条_将文字转换为线条方法一则
  4. 伽马数据 唯一官网.html,伽马数据
  5. 怎么样的项目经理才是合格的项目经理?
  6. 疯狂Android讲义(二)
  7. spring-boot-打版
  8. c++ IO中clear(flags)函数使用
  9. 技术人文 | 米家皮皮灯:无障碍交互新入口
  10. struts filter