教材学习总结
实验报告
UI组件
-
微件和布局,都在Android.view.View类中实现
- 微件:包括很多按钮、文本字段、进度条等;
- 布局:放置UI组件,使用UI工具所做的事情,都会反映在布局文件中,以XML元素的形式体现出来。
-
Toast
- 显示一条信息作为给客户的反馈(不代替当前活动,只占用一条消息的空间
- android.widget.Toast类是创建Toast的模板
- 一个Toast会显示在靠近激活活动的底部,也可以在调用Toast方法之前,使用setGravity方法修改显示位置
- AlterDialog也是一个为用户提供反馈的窗口,Toast可以淡出自己,AlterDialog会一直显示,直到失去焦点。使用AlterDialog.Builder类来创建AlterDialog。
- AlterDialog.Builder中的一下方法来修饰AlterDialog。
-
通知
- 出现在状态栏的一条消息,它是持久的,并将保持显示
- 通知是android。app.Notification的实例,使用Builder嵌套类创建一个通知。Context实例化该类。
- Notification.Builder类拥有一些方法啊=可以用来装饰最终的通知。
布局
作为以一个重要的android组件,布局定义了UI组件的可视化结构。布局是android.view.viewGroup的子类,该类反过来又派生自android.view.view类。
Android中的一些布局:
- LinearLayout。将所有子视图以相同的方向(或者水平的或者垂直的)对齐的一个布局。
- 最易使用的布局
- 布局中的没一个视图都可以通过layout_graavity属性来确定其在坐标轴的位置。
- LinearLayout也可以有gravity属性,会直接影响到其垂直对其方式。
- RelativeLayout。根据子视图的一个或多个同级视图的位置来排列它的一个布局。
- 功能最强大的布局。
- RelativeLayout中所有子视图都可以对于彼此或者对于它们的父视图来定位。
- FrameLayout。将每一个子视图放在另外一个子视图顶部的一种布局。
- 一个FrameLayout将其自视图定位于另一个子视图之上。通过调整边缘和空白,将该视图布局在另一个师徒制下也是有可能的。
- TableLayout。将子视图按照行和列来组织的一个布局。
- GridLayout。将子视图放置到一个栅格中的一种布局。
- GridTable类似于TableLayout,但是,必须要使用columnCount属性来指定列的数目。
- 创建布局方式;
- 使用XML文件
- 通过编程创建
监听器
响应一个事件的代码类,叫做监听器。要让程序响应某一件事,需要为该事件写一个监听器
view中监听器接口
接口 | 方法 |
---|---|
OnClickListener | onClick() |
OnLongClickListner | OnLongClick() |
OnFocusChangeListener | OnFocusChange() |
OnKeyListener | OnKey() |
OnTouchListener | OnTouch() |
- onClinck属性:作为使用onClick属性处理视图的点击事件的例子。
- 监听器在主线程上运行
问题及解决
命令行下实现实验编辑出现错误:
改正后正确:
代码托管
上周错题总结
-
Activity有三个关键的循环:
整个的生命周期从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在onCreate()中创建线程,在onDestory()中停止线程。
可见的生命周期从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。
前台的生命周期从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有 Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个 Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。 -
调试一个应用程序的最简单的方法,是使用日志消息。Android 框架提供了 android.util.Log 类用于记录日志消息。Log 类带日志级别最高的是:wtf(what a terrible failure)
-
写程序时,应当写三种代码:测试代码、产品代码、伪代码。
学习进度条
时间 | 代码行数(新增/累计) | 博客量 (累计) | 实际学习时间 |
---|---|---|---|
目标 | 60000 | 1 | 16 |
第二周 | 462/462 | 2 | 13 |
第三周 | 521/983 | 3 | 12 |
第四周 | 520/1503 | 4 | 10 |
第五周 | 1132/2635 | 5 | 16 |
第六周 | 669 | 6 | 16 |
第七周 | 6 | 16 |
参考资料
教材《Java和Android开发学习指南(第二版)(Java for Android.2nd)》