教材学习总结

实验报告

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)》