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();
'모바일 프로그래밍 공부' 카테고리의 다른 글
모바일 프로그래밍 7주차 Graphic 2D (0) | 2025.04.14 |
---|---|
모바일 프로그래밍 5주차 EventHandler (0) | 2025.04.01 |
모바일 프로그래밍 4-2 Layout (0) | 2025.04.01 |
모바일 프로그래밍 3주차 (0) | 2025.03.24 |
모바일 프로그래밍 1주차 (0) | 2025.03.17 |