认识Activity
activity就是一个活动界面,软件通过界面与用户交互。
后退键回到上一个activity,home键回到桌面。这两个按键都会影响activity。
一个Android项目包含两个最基本的文件:activity_main.xml,MainActivity.java。
activity.xml是主界面的布局文件,修改其中的内容可以设计程序的ui。在设计模式下可以直接拖动组件放到布局中
在res/value/string.xml中可以修改字符串的内容。
也可以选中内容按CTRL-B跳转。
程序从onCreate开始执行,activity通过setContentView
方法生成视图。由资源文件生成了R.txt中的layout activity_main
,
这会布局文件.xml的名称改变而随之改变。在res/layout上右键新建,可以创建新的布局文件。文件名首字母必须小写,推荐全小写并
用下划线进行单词分割。Root布局可以选择LinearLayout
1 | my_layout.xml |
这是一个垂直走向的布局。
接下来可以把setContentView的参数改成R.layout.my_layout
。
这就是新建布局和修改activity绑定布局的方法。
工程目录结构
- app/manifests
AndroidManifests.xml配置文件目录 - app/java
源代码目录,可以在这里新建包和java文件 - app/res
资源文件目录- layout 布局资源
- menu 菜单资源
- values 尺寸、字符串、样式资源
- …
启动自定义的Activity
在布局里创建一个按钮,自定义按钮的名字Text
和idid
。
1 | <Button |
接下来可以使用findViewById(R.id.<btn_id>)
来找到这个按钮。再对这个函数的返回值调用setOnClickListener方法,并传入一个新建的事件监听器,即可完成对
“点击按钮”的响应:
1 | findViewById(R.id.btn_change_activity).setOnClickListener( |
创建新的Activity
在app/src/java右键新建,选择Activity-Empty Activity。也可以创建普通的JavaClass,再让其继承Activity即可。Android Studio会自动帮我们在manifest中注册activity,生成对应的java文件和布局xml文件。
接下来再来设计新的Activity的布局,可以把ViewText改成“这是另一个Activity”。
进行Activity切换
使用startActivity
方法进行活动的切换,需要使用初始化器创建一个Intent实例作为startActivity的参数。
1 | public void onClick(View view) { |
查看SDK帮助手册
新版的AS将手册集成到了源码中,可以在鼠标悬停时显示提示,无需额外下载,但也无法单独查看。需要安装带有源码的SDK,
https://blog.csdn.net/limitzchen/article/details/107747510,如果SDK没有源码,重新下载并且修改构建的SDK版本https://blog.csdn.net/hou09tian/article/details/120105837
Activity生命周期
一个Acticvity的生命周期如下图所示,从被创建开始,activity可能会经历许多次的暂停-恢复或停止-重启,还有可能因为再在后台被清除而重新创建。

我想有几点是需要注意的:1.activity只要不再活动就会Pause,但只有不可见才会Stop。2.按下返回键时,activity会被destroy,而按下home键则只会Stop。
通过导航键找到活动时,如果活动所在的内存已经被清除,就要重新创建,否则就只需Restart。
利用以上几个原则,我们可以得到用一个activity打开另一个activity时的生命周期图:
如果在AndroidManifest中把新打开的activity的主题设置为对话框,新的活动就不会完全遮住原有的活动。这样,原有的活动的onStop()就不会执行。
1 | <activity |
要查看活动生命周期的状况,可以复写on<Action>
系列方法,并再其中加入System.out.println();
语句这样就可以在输出栏监控各个方法是否执行。