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 ...
随机推荐
- HDU - 1087 Super Jumping!Jumping!Jumping!(dp求最长上升子序列的和)
传送门:HDU_1087 题意:现在要玩一个跳棋类游戏,有棋盘和棋子.从棋子st开始,跳到棋子en结束.跳动棋子的规则是下一个落脚的棋子的号码必须要大于当前棋子的号码.st的号是所有棋子中最小的,en ...
- git 的简单使用(5)
git中打标签非常简单:只需要先奇幻岛想要打标签的分支 然后使用指令 git tag <name>就可以打一个新标签 可以用指令 git tag 查看所有标签 git tag <标签 ...
- Thesis Viva checklist
This list gives you suggestions helpful in preparing to defend your thesis: I know my thesis thoroug ...
- PAT 1108 Finding Average
The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...
- 一个电商项目的Web服务化改造5:面向服务的分层架构设计(有图有真相)
最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA. 有点挑战,做完了,会有很大进步. 本篇,以我亲自画的3个图,阐述一下架构设计. 一.分层架构-总体图 ...
- Postman做http接口功能测试
首先,做接口测试前要有明确的接口文档(e.g. http://test.nnzhp.cn/wiki/index.php?doc-view-59) ,假设已经在PC上安装好了Postman. 1. 普通 ...
- Android第三方开源图片裁剪截取:cropper
Android第三方开源图片裁剪截取:cropper 很多app都需要裁剪截取图片作为头像.logo之类,而cropper是github上的一个针对Android平台的.第三方开源图片裁剪截取项 ...
- App架构设计经验谈:接口”安全机制”的设计
[原文地址 点击打开链接] 原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/architecture/20160107 微信订阅号:ke ...
- pandas中选取某行为缺失值的数据,并返回
1.df.dropna() 可以返回去掉NaN的df结果集. 2.pandas中dataframe取差集: df=pd.DataFrame({"name":[1,2,3,np.Na ...
- href=#与 href=javascript:void(0) 的区别
<a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" ...