zoukankan      html  css  js  c++  java
  • 20169202 2016-2017-2《移动平台》第七周学习总结

    教材学习总结

    实验报告

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

  • 相关阅读:
    Python多进程实现并行化随机森林
    Python多进程队列间传递对象
    Umlet和draw.io 使用心得
    简单认识Adam优化器
    使用BERT进行情感分类预测及代码实例
    【深度学习】深入理解Batch Normalization批标准化
    Vue插件总结
    Vue配置环境识别
    pc端微信上传BUG
    Vue原生订单列表
  • 原文地址:https://www.cnblogs.com/zhaohui801/p/6702588.html
Copyright © 2011-2022 走看看