Android Activity基础

mac2025-07-12  3

Activity简单来说是一种包含用户界面的组件,主要用户和用户进行交互。

今天我们从0开始自己手动创建一个活动,用来加深记忆。

首先我们在创建工程的时候选择"Add No Activity" 模板,这里的开发工具为android studio。

设置工程基础属性:

完成创建。 如果使用java语言的话,那么上图中标红的部分是没有的。接下来我们优先使用kotlin语言作为代码示例,由于也是处在学习阶段,如果有什么错误,希望大家谅解。

接下来我们就需要手撕一个Activity了。

首先,我们需要创建一个活动,暂且 命名为QFirstActivity。

这里我们不勾选创建布局文件和设为启动Activity。 创建完成后,android studio会为我们生成一下的代码:

Kotlin

package com.qiushangge.android_kotlin import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class QFirstActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } }

Java

package com.qiushangge.android_java; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class QFirstActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } }

关于kotlin类的相关知识,参考:https://www.kotlincn.net/docs/reference/classes.html

接下来我们创建一个布局文件,在res目录下新建一个名为layout的目录,然后右键创建一个布局文件。

创建好的文件如下图所示:

作为示例,这里简单加一个按钮作为展示。

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/firstBtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="第一个按钮"> </Button> </LinearLayout>

布局完成后,我们需要将布局文件在需要的地方加载,并显示。此时我们需要在对应的Activity中加载布局文件,这里就是QFirstActivity.

在Android中我们都知道所有的Activity必须要在AndroidManifest.xml中进行注册方能生效。关于这一步Android Studio在创建Activity的时候已经帮我们注册好了,这里我们可以看一下AndroidManifest.xml的内容。

到了这一步,貌似好像我们的工具已经完成了,和Android Studio为我们创建的工程也没什么区别,试着运行一下。

我们会发现出错了,提示我们没有定义默认的Activity。我们不是已经注册过了吗,那么为什么还会报错呢。

在我们的项目中会有很多个Activity,而不仅仅是我们例子中的一个,那么必须要有一个标识能指定将哪个Activity作为我们程序的启动Activity。在AndroidManifest.xml中增加如下配置:

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".QFirstActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"></action> <category android:name="android.intent.category.LAUNCHER"></category> </intent-filter> </activity> </application> <intent-filter> <action android:name="android.intent.action.MAIN"></action> <category android:name="android.intent.category.LAUNCHER"></category> </intent-filter>

这几句代码的意思就是将QFirstActivity设置为程序的启动Activity。固定写法,我们只需要记住就好了。

启动程序:

ok,一切正常。

关于Activity的生命周期有关的东西,之前有讲过这里就不在赘述。

最新回复(0)