文章目录
- Activity的基本用法
- 活动是什么
- 新建活动
- 在AndroidManifest文件中注册Acyivity
- 销毁一个活动
Activity的基本用法
活动是什么
**活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。**一个应用程序中可以包含零个或多个活动,但不包含任何活动的应用程序很少见,谁也不想让自己的应用永远无法被用户看到吧?
新建活动
勾选Generate Layout File表示会自动为FirstActivity创建一个对应的布局文件,勾选LauncherActivity表示会自动将FirstActivity设置为当前项目的主活动,这里由于你是第一次手动创建活动,这些自动生成的东西暂时都不要勾选,下面我们将会一个个手动来完成。勾选BackwardsCompatibility表示会为项目启用向下兼容的模式,这个选项要勾上。点击Finish完成创建。
在AndroidManifest文件中注册Acyivity
所有的活动都要在AndroidManifest.xml中进行注册才能生效,而实际上FirstActivity已经在AndroidManifest.xml中注册过了,我们打开app/src/main/AndroidManifest.xml文件瞧一瞧,代码如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activitytest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".FirstActivity"></activity>
</application>
</manifest>
可以看到,活动的注册声明要放在标签内,这里是通过<activity>标签来对活动进行注册的。那么又是谁帮我们自动完成了对FirstActivity的注册呢?当然是Android Studio了,之前在使用Eclipse创建活动或其他系统组件时,很多人都会忘记要去Android Manifest.xml中注册一下,从而导致程序运行崩溃,很显然Android Studio在这方面做得更加人性化。
在<activity>标签中我们使用了android:name来指定具体注册哪一个活动,那么这里填入的**.FirstActivity是什么意思呢?其实这不过就是com.example.activitytest.FirstActivity的缩写**而已。由于在最外层的
<manifest>标签中已经通过package属性指定了程序的包名是com.example.activitytest,因此在注册活动时这一部分就可以省略了,直接使
用.FirstActivity就足够了。不过,仅仅是这样注册了活动,我们的程序仍然是不能运行的,因为还没有为程序配置主活动,也就是说,当程序运行起来的时候,不知道要首先启动哪个活动。配置主活动的方法其实就是在<activity>标签的内部加入<intent-filter>标签,并在这个标签里添加<action android:name=“android.intent.action.MAIN”/>和<category android: name=“android.intent.category.LAUNCHER” />这两句声明即可。
除此之外,我们还可以使用android:label指定活动中标题栏的内容,标题栏是显示在活动最顶部的,待会儿运行的时候你就会看到。需要注意的是,给主活动指定的label不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称。
修改后的AndroidManifest.xml文件,代码如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activitytest">
<application
... >
<activity android:name=".FirstActivity"
android:label="This is FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这样的话,FirstActivity就成为我们这个程序的主活动了,即点击桌面应用程序图标时首先打开的就是这个活动。另外需要注意,如果你的应用程序中没有声明任何一个活动作为主活动,这个程序仍然是可以正常安装的,只是你无法在启动器中看到或者打开这个程序。这种程序一般都是作为第三方服务供其他应用在内部进行调用的,如支付宝快捷支付服务。
销毁一个活动
其实答案非常简单,只要按一下Back键就可以销毁当前的活动了。不过如果你不想通过按键的方式,而是希望在程序中通过代码来销毁活动,当然也可以,Activity类提供了一个finish()方法,我们在活动中调用一下这个方法就可以销毁当前活动了。修改按钮监听器中的代码,如下所示:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
重新运行程序,这时点击一下按钮,当前的活动就被成功销毁了,效果和按下Back键是一样的。
如果对你有帮助,就一键三连呗(点赞+收藏+关注),我会持续更新更多干货~~