一些理解
直观来看Activity就是我们手机中看到的一个一个的页面,页面中的内容就是布局,布局内放置各种控件。多组页面以返回栈放方式存放,类似堆栈后进先出。一个堆栈即一个任务,只有栈顶的页面处于运行状态。一个app可以存在多个返回栈,即多任务。(个人理解欢迎纠正)
活动(Activity)的周期
每个新建一个活动都要在AndroidManifest文件中注册(AS会自动完成)。
活动存在四种状态,对应于其在栈中的不同位置:
运行状态:活动处栈顶时;
暂停状态:活动不处于栈顶,但可见时;
停止状态:活动不可见时;
销毁状态:活动出栈时。
活动的生命周期包含7个回调方法,在不同的状态时自动调用:
活动的生命周期
Intent
活动之间的切换和数据传递需要借助Intent,具体用法为new
一个Intent实例,并以各种方式(显式或隐式)指定下一个活动,使用Intent的putExtra()
方法,将要传递的数据放入Intent,然后调用startActivity()
或startActivityForResult()
方法传入Intent实现跳转。Intent甚至可以跳转到其他app的活动中,实现应用间功能共享。
Layout
Android讲究逻辑和布局的分离,每一个活动最好对应一个布局。布局文件写在res文件夹的xml文件中,并在java中以R.Layout.文件名
的方式调用。常用的四种布局有LinerLayout,RelativeLayout,FrameLayout,PercentLayout。布局标签内定义各种控件,每个控件要命名一个ID,在java中以 R.id.命名
方式调用。
书中未提到的
Layout预览
新版的AS似乎无法直接预览Layout文件,这给编辑布局文件带来不少麻烦,解决方法参考此文;
注册监听器
书中介绍了两种监听器的注册方法,一种为匿名类方式,对于java不太熟练的我来说语法有些怪异,另一种为实现接口的方式,不知为何实际无法实现,后参考此文采用了第四种方式实现。
例程
关于控件,内容过于繁杂,在此不做赘述,练习代码在我的git仓库持续更新。
网友评论