《Android权威编程指南》学习笔记

上传人:liy****000 文档编号:115437219 上传时间:2019-11-13 格式:DOCX 页数:12 大小:346.06KB
返回 下载 相关 举报
《Android权威编程指南》学习笔记_第1页
第1页 / 共12页
《Android权威编程指南》学习笔记_第2页
第2页 / 共12页
《Android权威编程指南》学习笔记_第3页
第3页 / 共12页
《Android权威编程指南》学习笔记_第4页
第4页 / 共12页
《Android权威编程指南》学习笔记_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《《Android权威编程指南》学习笔记》由会员分享,可在线阅读,更多相关《《Android权威编程指南》学习笔记(12页珍藏版)》请在金锄头文库上搜索。

1、第一章 Android应用初体验1. android:layout_centerHorizontal = “true” 水平居中对齐2. android:layout_centerVertical = “true” 垂直居中对齐3. android:layout_width和android:layout_height属性几乎每类组件都需要android:layout_width和android:layout_height属性。它们通常被设置为以下两种属性值之一。q match_parent:视图与其父视图大小相同。q wrap_content:视图将根据其内容自动调整大小。4. android

2、:orientation属性是两个LinearLayout组件都具有的属性,决定了二者的子组件是水平放置的还是垂直放置的。vertical:垂直放置horizontal:水平放置5. android:text属性TextView与Button组件具有android:text属性。该属性指定组件显示的文字内容。6. Android为整个布局文件以及各个字符串生成资源ID,但activity_quiz.xml布局文件中的组件除外,因为不是所有的组件都需要资源ID。要为组件生成资源ID,请在定义组件时为其添加上android:id属性。7. 使用类包组织导入,就是让Eclipse依据代码来决定应该导

3、入哪些Java或Android SDK类包。如果之前导入的类包不再需要了, Eclipse也会自动删除它们。通过以下组合键命令,进行类包组织导入:q Command+Shift+O(Mac系统);q Ctrl+Shift+O(Windows和Linux系统)。8. 通过调用来自Toast类的以下方法,可创建一个toast:该方法的Context参数通常是Activity的一个实例(Activity本身就是Context的子类) 。第二个参数是toast待显示字符串消息的资源ID。 Toast类必须利用context才能找到并使用字符串的资源ID。第三个参数通常是两个Toast常量中的一个,用来

4、指定toast消息显示的持续时间。创建Toast后,可通过调用Toast.show()方法使toast消息显示在屏幕上。9. 在makeText(.)里,传入QuizActivity实例作为Context的参数值。注意此处应输入的参数是QuizActivit.this,不要想当然地直接输入this作为参数。因为匿名类的使用,这里的this指的是监听器View.OnClickListener第二章 Android与MVC1.生成getter与setter方法首先,配置Eclipse识别成员变量的m前缀,并且对于boolean类型的成员变量使用is而不是get前缀。打开Eclipse首选项对话框(

5、Mac用户选择Eclipse菜单, Windows用户选择Windows Preferences菜单) 。在Java选项下选择Code Style。在Conventions for variable names:表中,选择Fields行,如图2-3所示。单击右边的Edit按钮,增加m作为fields的前缀。然后增加s作为Static Fields的前缀。(GeoQuiz项目不会用到s前缀,但在之后的项目中会用到。)确认Use is prefix for getters that return boolean选择框被勾选后,单击OK按钮,如图2-3所示。刚才设置的前缀有何作用?现在,当要求Ecl

6、ipse为mQuestion生成getter方法时,它生成的是getQuestion()而不是getMQuestion()方法;而在为mTrueQuestion生成getter方法时,生成的则是isTrueQuestion() 而不是isMTrueQuestion()方法。回到TrueFalse.java中,右击构造方法后方区域,选择Source Generate Getters And Setters.菜单项。点击Select All按钮,为每个变量都生成getter与setter方法。2.q mdpi:中等像素密度屏幕(约160dpi)。q hdpi:高像素密度屏幕(约240dpi)。q

7、xhdpi:超高像素密度屏幕(约320dpi)。第三章 Activity的生命周期1. 在Bundle中存储和恢复的数据类型只能是基本数据类型(primitive type)以及可以实现Serializable接口的对象。创建自己的定制类时,如需在onSaveInstanceState(.)方法中保存类对象,记得实现Serializable接口。2第四章 Android应用的调试1. Logcat在大部分编写的代码中,最后一个没有原因的异常往往是我们要关注的目标。这里,没有原因的异常是java.lang.NullPointerException。紧接着该异常语句下面的一行就是其栈追踪信息的第一

8、行。从该行可以看出发生异常的类和方法以及它所在的源文件及代码行号。双击该行,Eclipse自动跳转到源代码的对应行上。2.代码调试单击this旁边的三角展开按钮或点击右箭头键可看到全部变量值变量名旁边的彩色图形表明了该变量的可见性:q 绿色圆圈 公共变量;q 蓝色三角 默认变量(包内可见);q 黄色菱形 保护变量;q 红色正方形 私有变量。3. 使用异常断点如一时无法设置合适的断点,我们仍然可以使用调试器来捕捉异常。在QuizActivity.java中,再次注释掉mQuestionTextView变量的赋值语句。选择Run Add Java Exception Breakpoint.菜单项调

9、出异常断点设置窗口。通过该对话窗口设置所需的异常断点。这样,无论任何时候,只要应用抛出异常就可以触发该断点。根据需要,可限制断点仅针对未捕获的异常生效。当然,也可以设置为两种类型的异常都生效。在Android的世界里,通常由框架来捕捉住大多数异常,然后切换到调试窗口并停止应用的进程。这意味着,设置异常断点时,通常需选择Suspend on caught exceptions选项。接下来我们来选择要捕捉的异常类型。 输入RuntimeException,选择随后出现的任何选项。RuntimeException是NullPointerException、 ClassCastException及其他

10、常见异常的超类,因此该设置基本适用于所有异常。不过,为能捕捉住各种子类异常,我们还需做一件事。切换到调试透视图,在断点视图中,应该能看到刚设置RuntimeException断点。单击该断点并勾选Subclasses of this exception选框,这样在NullPointerException异常抛出时,断点随即被触发。4 R类的问题对于引用还未添加的资源,或者删除仍被引用的资源而导致的编译错误,我们已经很熟悉了。通常,在添加资源或删除引用后再重新保存文件, Eclipse会准确无误的重新进行项目编译。不过,有时这些编译错误会一直出现或是出现得莫名其妙。如遇这种情况,请尝试如下操作。

11、q 运行Android Lint选择Window Run Android Lint菜单项。 Lint会检查并梳理项目资源文件。q 清理项目选择Project Clean菜单项。 Eclipse会重新编译整个项目,消除错误。q 重新检查资源文件中XML文件的有效性如果最近一次编译时未生成R.java文件,则会引起项目资源引用错误。通常,这是由布局XML文件中的拼写错误引起的。因无法校验布局XML文件的有效性, Eclipse往往无法进行输入错误警示。修正错误并保存XML文件, Eclipse会重新生成新的R.java文件。q 删除gen目录如果Eclipse无法生成新的R.java文件,我们可以

12、删除整个gen目录。 Eclipse会重新编译项目并创建一个新的gen目录,内含功能完备的第五章 第二个activity1.public Intent(Context packageContext, Class cls)传入该方法的Class对象指定ActivityManager应该启动的activity; Context对象告知ActivityManager在哪一个包里可以找到Class对象.第 6 章 Android SDK 版本与兼容第 7 章 UI fragment 与 fragment 管理器1.保存所有文件。删除menu_settings字符串资源会导致项目发生错误。要想修正错误,

13、可通过包浏览器找到res/menu/activity_crime.xml文件。该文件定义了模板创建的menu,引用了menu_settings字符串。 CriminalIntent应用不需要该menu文件,因此可直接将其从包浏览器中删除。2. 在 onCreateView(.) 方 法 中 , fragment 的 视 图 是 直 接 通 过 调 用 LayoutInflater.inflate(.)方法并传入布局的资源ID生成的。第二个参数是视图的父视图,通常我们需要父视图来正确配置组件。第三个参数告知布局生成器是否将生成的视图添加给父视图。这里,我们传入了false参数,因为我们将通过ac

14、tivity代码的方式添加视图。3. fragment中监听器方法的设置和activity中的处理完全一样。如代码清单7-9所示,创建实现TextWatcher监听器接口的匿名内部类。 TextWatcher有三种方法,不过我们现在只需关注其中的onTextChanged(.)方法。在onTextChanged(.)方法中,调用CharSequence(代表用户输入)的toString()方法。该方法最后返回用来设置Crime标题的字符串。4. 对于fragment,我们坚持AUF(Always Use Fragments)原则,即“总是使用fragment”原则。第八章 使用布局与组件创建用

15、户界面1. 深入探讨 XML 布局属性1.1 样式、主题及主题属性样式(style)是XML资源文件,含有用来描述组件行为和外观的属性定义。例如,下列样式资源就是用来配置组件,使其显示的文字大小大于正常值的一段代码。fragment_crime.xml文件中的两个TextView组件,每个组件都有一个引用Android自带样式文件的style属性。该预定义样式来自于应用的主题,使得屏幕上的TextView组件看起来是以列表样式分隔开的。使用主题属性引用,可将预定义的应用主题样式添加给指定组件。例如,在fragment_crime.xml文件中,样式属性值?android:listSeparatorTextViewStyle的使用就是一个很好的例子。1.2 dp、 sp以及屏幕像素密度有时需为视图属性指定大小尺寸值(通常以像素为单位,但有时也用点、毫米或英寸)。 最常见的属性有: q 文字大小(text size),指设备上显示的文字像素高度; q 边距(margin),指定视图组件间的距离; q 内边距(padding),指定视图外边框与其内容间的距离。密度无关的尺寸单位(density-independent dimension units)q dp英文d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号