2021SC@SDUSC
目录
app入门Hello World分析
教学案例“入门Hello World”总体分为“布局”和“UI控件”两部分。此app帮助读者学会使用Android中的布局和UI控件,同时也让读者学习如何构建Android首个应用,并对Android应用程序组件中Activity、Service、Broadcast Receiver、Content Providers这四个主要组件有所了解。
所需基本知识
Activity简介
Activity提供窗口供应用在其中绘制页面,一个Activity实现应用中的一个屏幕。Activity类的目的就是为了实现当一个应用调用另一个应用时,调用方应用会调用另一个应用中的 Activity,而不是整个应用。通过这种方式,Activity 充当了应用与用户互动的入口点。
大多数应用包含多个屏幕,这意味着他们包含多个Activity。通常,应用中的一个 Activity 会被指定为主 Activity,这是用户启动应用时出现的第一个屏幕。然后,每个 Activity 可以启动另一个 Activity,以执行不同的操作。要在应用中使用 Activity,您必须在应用的清单中注册关于 Activity 的信息,并且必须适当地管理 Activity 的生命周期。
Activity--OnCreate()
为了在 Activity 生命周期的各个阶段之间导航转换,Activity 类提供六个核心回调:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy。当 Activity 进入新状态时,系统会调用其中每个回调。
必须实现onCreate()回调,它会在系统首次创建Activity时触发。Activity会在创建后进入"已创建"状态。onCreate()方法在Activity的整个生命周期中只应发生一次。
布局
布局定义了应用中的界面结构(例如 Activity的界面结构)。布局中的所有元素均使用 View和 ViewGroup对象的层次结构进行构建。View通常用于绘制用户可看到并与之交互的内容。ViewGroup则是不可见的容器,用于定义 View和其他 ViewGroup对象的布局结构,如图所示。
此案例app在xml中声明界面元素。
Android中有六大布局。分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) ,FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局)
任何 View 对象均可拥有与之关联的整型 ID,用于在结构树中对 View 对象进行唯一标识。编译应用后,系统会以整型形式引用此 ID,但在布局 XML 文件中,系统通常会以字符串的形式在 id 属性中指定该 ID。
Intent
Intent 用于通过描述您想在某个 Intent对象中执行的简单操作(如“查看地图”或“拍摄照片”)来启动另一应用中的某个 Activity。
Intent 分为两种类型:
显式 Intent:通过提供目标应用的软件包名称或完全限定的组件类名来指定可处理 Intent 的应用。通常,您会在自己的应用中使用显式 Intent 来启动组件,这是因为您知道要启动的 Activity 或服务的类名。
隐式 Intent :不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理。
app主页面分析--MainActivity
布局--activity_main.xml
首先是此页面有一个可上下拖动的进度条,整个页面是个线性布局,页面中拥有文本和按钮。因此根元素是一个ScrollView,设置LinearLayout线性布局,再在布局中添加TextView和Button和View元素。在标签内设置layout_width、layout_height、text、padding、id等属性。
后续要为每个Button添加ClickListener,需在其他文件引用Button。因此Button一定要设置id。
添加布局
首先调用onCreate()方法,此Activity进入"已创建"状态。然后通过setContentView(R.layout.xxx
)方法(xxx是布局文件名称)添加布局文件。
处理点击事件
首先写一个继承自View.OnClickListener接口的OnClick类,重写接口中的onClick()方法,用Switch语句为相应的按钮增加显式Intent,使得相应view发生点击事件后跳转至相应的Activity。
然后通过属性id找到每个Button
调用自定义的setListeners()方法为每个按钮加监听,setListeners()方法主要调用每个Button的 setOnClickListener()方法。
重写的onClick()方法使得点击事件发生后,主Activity可以调用相应的子Activity。
布局教学部分
LinearLayout
此部分教学主要集中在如何使用LinearLayout上。因此主要代码为layout中的activity_linear_layout.xml。
首先设置一个总的LinearLayout,再分为左边和右边两部分。左边的TextView将宽度设为130dp,高度设为fill_parent(形成一个左导航栏)。右边则再添加了一个LinearLayout,添加了四个layout_height、layout_width等属性不同的TextView,具体展示UI中的属性该如何使用。布局通过不同颜色表示的不同View鲜明地展示出来。
RelativeLayout
此部分教学主要集中在如何使用RelativeLayout上。因此主要代码为layout中的activity_relative_layout.xml。
首先设置布局为RelativeLayout,然后再添加TextView和ImageView组件。相对布局主要通过根据父容器定位(layout_alignParentLeft、layout_alignParentRight、layout_alignParentTop、layout_alignParentBottom、android:layout_centerVertical等)和根据兄弟组件定位(layout_alignLeft、layout_alignRight、layout_alignTop、layout_alignBottom、layoutAbove等)来确定布局。
因此此页面其他View主要通过两个根据父容器定位的兄弟组件来定位。主要设置layout_height、layout_width等属性改变组件大小。
根据父容器定位的View
根据兄弟组件定位的View:
总结
了解了Android四大组件Activity基本内容,对其创建onCreate()与设置布局文件setContentView()的方法较为熟悉。并且了解了Intent过滤器的两种类型与用途。还学习了Android六大布局中经常使用的LinearLayout(线性布局)和RelativeLayout(相对布局)。
移动互联网开发技术教学平台案例app入门Hello World确实能帮助阅读者学习到Android知识。