2B课程笔记分享_StudyJams_2017
课程2B-创建交互式应用(下)
概述
- 课程2B的内容主要包括:使用变量来更新欲显示在屏幕上的内容,为按钮添加事件响应(联系XML属性与Java方法)逻辑等。
- 后续的课程会逐步深入地讲解使用Java开发基本Android程序需要掌握的语言知识、数据库知识、编程技巧以及面向对象编程思想等等,大家一起加油!
Polishment-修饰原有布局
课程2B首先着眼于改进2A中"蜷缩"在屏幕左上部分的咖啡订购布局。
从这种狭窄的垂直长条形布局"解脱"出来有两个好处
1) 用户能够更快地速览(scan over)整个布局,而之前的长条形布局在纵向上的内容太多;
2) 能够更多地利用水平方向上的空间,减少视觉上的突兀感,使得界面更加美观。按照之前讲过的界面设计"三部曲"(选择视图->放置视图->设置视图风格)的套路:
1) 选择视图:保持原有的视图控件不变;
2) 设置视图的位置:即Header、Button以及TextView之间的位置;
3) 设置视图风格:除了设置各种Views控件的align属性,还需注意TextView与Button控件之间的间距(用padding或者margin实现,但最好用margin,因为过大的padding可能会增大按钮的宽高)等细节。Nested ViewGroups-嵌套视图组的使用
a) 一个ViewGroup中可以嵌套另外的ViewGroup,开发人员可以灵活使用嵌套视图组,以达到预期的视觉效果;
b) 理论上,可以做无数层的ViewGroups嵌套,但是,最好不要滥用视图组的嵌套:仅在必要的时候使用视图组的嵌套。因为过多的嵌套层数对程序性能来说十分不利:Android会花费较长时间来(递归地)计算每个控件的精确位置。建议:为了正确地使用并不直观的XML代码中视图组嵌套的方法来达到期望的视觉效果,可以使用事先画出视图层级草图的办法来帮助理清视图组嵌套的层次关系。
步骤:设计界面布局 ----> 画出界面的Views的树状图 ----> 搭建XML中视图组层次关系的"骨架"(skeleton)
String类型的变量
在Java代码中使用String类型的变量,可以避免字符串硬编码(hard-coded)于XML源文件中。硬编码的字符串,一旦需要更改,则所有具有相同字面值的字符串都需要更改。
声明String类型的变量
a)变量取名:尽量做到“见名知意”;
b)转义字符(escape sequence):如果想在字符串字面值中显示一些特殊的字符(换行、回车、制表符等),需要在字面值中使用转义字符,如图1所示。

**图1.** 转义字符
- String Concatenation_字符串拼接:
a)字符串与字符串之间的拼接,可以是String类型的变量,也可以是字符串字面值;
b)字符串与其他类型变量的拼接:比如字符串与int类型的变量之间的拼接:
String str = "String Concatenation";
int num = 666;
System.out.println(str + " with an interger:\t" + num);
以上代码会输出String Concatenation with an interger: 666并换行。在将以上Java代码编译成字节码(Byte Code)时,编译器对变量num进行了隐式自动类型转换:将其转换成了String类型的变量。
2B课程笔记分享_StudyJams_2017的更多相关文章
- 1C课程笔记分享_StudyJams_2017
课程1C 概述 课程1C是创建一个生日贺卡应用的实践课程,所以本篇笔记分享主要记录个人的实践过程,此外分享一些比较零散的知识点. Drawable文件夹 Drawable文件夹是Android项目统一 ...
- 1A课程笔记分享_StudyJams_2017
1A课程 概述 课程1A主要讲解了Android UI的三种基本控件:TextView.ImageView以及Button.笔记的主体内容主要根据课程内容的讲解顺序来组织,此外我对一些个人比较感兴趣的 ...
- 2C课程笔记分享_StudyJams_2017
课程2C-实践:创建交互式应用 概述 课程2C的内容主要是练习巩固2A.2B中讲解的内容,并设计实现一款篮球比赛的计分板应用及其界面的美化. Warm-Up:准备活动 新建项目PracticeSet2 ...
- 2A课程笔记分享_StudyJams_2017
课程2A 概述 课程2A.2B的内容主要是关于创建交互式应用的基础知识.之前的L1课程主要是Android UI的基础设计知识,基本上没涉及到编程. 2A的讲解主要包括:使用变量来更新欲显示在屏幕上的 ...
- 1B课程笔记分享_StudyJams_2017
课程1B 概述 课程1B主要讲解了Android UI的ViewGroups(视图组).LinearLayout(线性布局).RelativeLayout(相对布局),Portrait Mode(竖屏 ...
- 3A课程笔记分享_StudyJams_2017
课程3A-面向对象编程(上) 概述 面向对象的思想在当今的软件开发中占据着主导地位. Java是一门完全面向对象的语言,是一种天然的分布式互联网软件的开发语言,在当今企业级应用中占据绝对领先地位,也是 ...
- 3B课程笔记分享_StudyJams_2017
昨晚才发现 Study Jams China的官方论坛也支持MarkDown,所以直接发在了那上面.http://www.studyjamscn.com/thread-21807-1-1.html
- L4课程_Firebase_笔记分享_StudyJams_2017
最近才发现Study Jams China的官方论坛也支持MarkDown,所以就直接把笔记发在了那儿. http://www.studyjamscn.com/thread-21855-1-1.htm ...
- 深度学习课程笔记(一)CNN 卷积神经网络
深度学习课程笔记(一)CNN 解析篇 相关资料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html 首先提到 Why CNN for I ...
随机推荐
- 名字竞技场 V3.0
更新内容 1.加入新boss,更高的难度. 2.支持组队模式勒! 3.针对大家反应的人物属性算法进行了修改,现在人物属性更多的取决于名字而不是随机数 4.用户界面优化 INF.代码拿走赞留下,不然你赢 ...
- ASP.NET大闲话:ashx文件有啥用
在VS中右击项目,添加新项,我们找到.ashx文件在新建项模板中叫做“一般处理程序”,那么这个一般处理程序用来干吗的呢? 我们可以这样地简单理解,嗯,不需搞得太复杂,它就类似.aspx文件,用于处理传 ...
- Navicat premium连接Oracle报ORA-12514错误
1:ORA-12514 原因:Service Name/SID中的值填的有问题,默认的是ORCL,这个值如果在安装Oracle的时候填的不是ORCL,那就会出现这个错误 解决方法:找到Oracle安装 ...
- Linux下几种文件传输命令
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...
- ggplot画基本图形类型
df<-data.frame( x=c(3,1,5), y=c(2,4,6), label=c("a","b","c"))p<- ...
- bootstrap-table设置height后表头与内容无法对齐的问题
bootstrap-table项目官网:https://github.com/wenzhixin/bootstrap-table bootstrap-table各版本下载:https://github ...
- Oracle数据库点滴
分页查询: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)W ...
- [vagrant]第一次安装添加box出现问题汇总
1.本地文件要加全文件名和协议file:/// 2.The box failed to unpackage properly. Please verify that the box file you' ...
- Clojure:通过ZeroMQ推送消息
通过ZeroMQ的pub/sub模式,我们可以实现发送推送消息的功能.以下为示例代码(入门可参考此文:http://www.cnblogs.com/ilovewindy/p/3984269.html) ...
- AngularJS:一行JS代码实现控件验证效果
如上图所示,我们需要实现如下这些验证功能: 控件都是必输控件 都需要控制最大长度 第一次打开页面,控件不能显示为错误状态 输入内容再清空后,必输控件需要显示为错误状态 只有所有输入合法后,发布按钮才能 ...