2025-04-09 22:57:28

Activity

  • 애플리케이션의 표현 계층
  • UI 구성요소를 스크린에 표시
  • 윈도우 어플리케이션의 Form과 같은 기능을 수행

 

예제 1) 버튼을 눌러 Activity를 전환하기

 

JAVA 소스 코드)

MainActivity.java

package com.inhatc.mobile_programming_practice;

import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TabHost;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    Button btnCow;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        btnCow = (Button)findViewById(R.id.btnCow);
        btnCow.setOnClickListener(this);

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
    @Override
    public void onClick(View view)
    {
        if (view == btnCow)
        {
            Intent cowIntent = new Intent(MainActivity.this, CowActivity.class);
            startActivity(cowIntent);
        }
    }
}

CowActivity.java

package com.inhatc.mobile_programming_practice;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class DogActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_dog);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
}

 

핵심 포인트)

시작)

Intent cowIntent = new Intent(MainActivity.this, CowActivity.class);

startActivity(cowIntent);

 

종료)

finish();

 

 

예제 2) Sound에 텍스트 입력 후 OK 버튼 클릭 시 입력한 텍스트를 toast를 이용하여 출력

MainActivity.java

package com.inhatc.mobile_programming_practice;

import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    Button btnCow;
    Toast objToast;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        btnCow = (Button)findViewById(R.id.btnCow);
        btnCow.setOnClickListener(this);

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
    @Override
    public void onClick(View view)
    {
        if (view == btnCow)
        {
            Intent cowIntent = new Intent(MainActivity.this, CowActivity.class);
            startActivityForResult(cowIntent, 1);
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1)
        {
             String strData = data.getStringExtra("Animal_Sound");
             objToast = Toast.makeText(this, strData, Toast.LENGTH_LONG);
             objToast.show();
        }
    }
}

CowActivity.java

package com.inhatc.mobile_programming_practice;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class CowActivity extends AppCompatActivity implements View.OnClickListener{
    Button btnOK;
    EditText editSound;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_cow);

        btnOK = (Button)findViewById(R.id.btnOK);
        btnOK.setOnClickListener(this);

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
    @Override
    public void onClick(View view)
    {
        if (view == btnOK)
        {
            Intent CallIntent = getIntent();
            editSound = (EditText)findViewById(R.id.editTextSound);
            CallIntent.putExtra("Animal_Sound", editSound.getText().toString());
            setResult(RESULT_OK, CallIntent);
            finish();
        }
    }
}

 

결과)

 

 

핵심 포인트)

시작)

startActivityForResult(cowIntent,  1);

 

@Override

protected void onAcitivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 1) {

        String strData = data.getStringExtra("Animal_Sound");

        objToast = Toast.makeText(this, strData, Toast.LENGTH_LONG);

        objToast.show();

    }

}

 

종료)

CallIntent.putExtra("Animal_Sound", edtSound.getText().toString());

setResult(RESULT_OK, CallIntent);

finish();