액티비티(Activity)

액티비티란 무엇이며 수동으로 추가하는 방법

1. 액티비티(Activity)란?

액티비티는 Android 앱에서 사용자 인터페이스를 포함하는 컴포넌트로, 주로 사용자와 상호작용하는 데 사용됩니다.

핵심 요점설명
주요 역할UI 화면을 담당하고 사용자 상호작용(탭, 입력 등)을 처리함
개수앱은 0개 이상의 액티비티를 포함할 수 있음 (액티비티가 없어도 순수 백그라운드 서비스 앱처럼 실행 가능)
본질각 액티비티는 하나의 전체 화면 창이나 화면에 해당함

2. 액티비티 수동으로 생성하기 (템플릿 사용 안 함)

2.1 프로젝트 생성
  • 새 프로젝트를 만들고 ActivityDemo로 이름 지정
  • 템플릿에서 Add No Activity 선택 (액티비티가 자동으로 생성되지 않음)
  • 프로젝트 경로에 한글을 포함할 수 없음
  • 생성 과정에서 인터넷 연결 필요 (Gradle 종속성 다운로드)

인터넷에 연결되지 않은 경우 다음 오류가 발생합니다:

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

Gradle이 로드되지 않으면 프로젝트가 자동으로 패키지로 분할되지 않으며 액티비티를 정상적으로 추가할 수 없습니다.

2.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)

3. 레이아웃 파일 생성

3.1 새 레이아웃 만들기

res/layout을 마우스 오른쪽 버튼으로 클릭 → New → Layout Resource File

매개변수값
File namefirst_layout
Root elementLinearLayout
3.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.3 주요 속성 설명
속성설명
android:id="@+id/button"버튼에 고유 ID를 정의합니다. +는 현재 XML에서 새로 정의되는 ID임을 의미하며 기존 리소스에서 참조하는 것이 아닙니다
android:layout_width="match_parent"너비를 부모 컨테이너에 맞춤
android:layout_height="wrap_content"높이를 내용에 맞게 조정
android:text버튼에 표시되는 텍스트

+id와 + 없음의 차이:

  • @+id/xxx → 새 ID 정의 (처음 생성할 때 사용)
  • @id/xxx → 기존 ID 참조 (레이아웃 간 참조 등)

4. 액티비티에서 레이아웃 로드하기

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_layoutres/layout/first_layout.xml 레이아웃 참조

5. 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을 발생시킵니다.

액티비티

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다