活动

什么是活动和手动添加一个活动

一、什么是活动(Activity)

活动是 Android 应用中包含用户界面的组件,主要用于和用户进行交互。

要点说明
核心职责承载 UI 界面,处理用户交互(点击、输入等)
数量一个应用可以包含零个或多个活动(没有活动也能运行,比如纯后台服务应用)
本质每个活动都对应一个全屏窗口或一个界面

二、手动创建活动(不依赖模板)

1. 创建项目
  • 新建项目,命名为 ActivityDemo
  • 模板选择 Add No Activity(不自动生成任何活动)
  • 项目路径不能包含中文
  • 创建过程需要联网(下载 Gradle 依赖)

如果未联网,会出现以下错误:

Gradle 'ActivityDemo' project refresh failed
Error:Cause: dl.google.comCode language: JavaScript (javascript)

未加载 Gradle 时,项目不会自动分包,也无法正常添加活动。

2. 创建活动类

右键 java/cn.bamn.www.activitydemo/ → New​ → Java Class

命名为 FirstActivity,继承 AppCompatActivity:

package cn.bamn.www.activitydemo;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}Code language: JavaScript (javascript)

三、创建布局文件

1. 新建布局

右键 res/layout → New​ → Layout Resource File

参数值
File namefirst_layout
Root elementLinearLayout
2. 编写布局代码

打开 first_layout.xml,添加一个按钮:

<?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/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="加入FoxDevelop" />

</LinearLayout>Code language: HTML, XML (xml)
3. 关键属性解析
属性说明
android:id="@+id/button"为按钮定义唯一 ID。+ 表示在当前 XML 中新定义这个 ID,不是从已有资源中引用
android:layout_width="match_parent"宽度填满父容器
android:layout_height="wrap_content"高度根据内容自适应
android:text按钮上显示的文本

+id vs 无 +:

  • @+id/xxx → 新定义一个 ID(首次创建时用)
  • @id/xxx → 引用已有 ID(如布局间引用)

四、活动中加载布局

回到 FirstActivity,在 onCreate() 中调用 setContentView():

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.first_layout);
}Code language: CSS (css)
代码作用
setContentView()将 XML 布局文件与活动绑定
R.layout.first_layout引用 res/layout/first_layout.xml 布局

五、在 AndroidManifest.xml 中注册活动

打开 AndroidManifest.xml,在 <application> 标签内注册:

<activity android:name=".FirstActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>Code language: HTML, XML (xml)
配置作用
android:name=".FirstActivity"注册活动(. 代表当前包名)
MAIN + LAUNCHER设为启动入口,点击图标时首先打开

未注册的活动无法使用,系统会报 ActivityNotFoundException。

Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注