본문 바로가기

안드로이드 스튜디오

[안드로이드 스튜디오]액티비티 간의 단반향 데이터 전달방법

 

안드로이드 액티비티 데이터 전달 방법

1. 액티비티 간의 단방향 데이터 전달방법

안드로이드 개발에서는 종종 하나의 액티비티에서 다른 액티비티로 데이터를 전달해야 하는 경우가 있다. 이 섹션에서는 두 개의 액티비티 간에 단방향으로 데이터를 전달하는 방법을 설명한다. 예제에서는 MainActivity에서 SecondActivity로 사용자가 입력한 이름과 나이를 전달하는 방법을 다룬다.

MainActivity.java

package com.kks.lifecycle;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    Button button;
    EditText editName;
    EditText editAge;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        editName = findViewById(R.id.editName);
        editAge = findViewById(R.id.editAge);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name = editName.getText().toString().trim();
                String strAge = editAge.getText().toString().trim();
                int age = Integer.parseInt(strAge);

                // Intent를 생성하여 데이터를 SecondActivity로 전달한다
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                intent.putExtra("name", name);
                intent.putExtra("age", age);
                startActivity(intent);
            }
        });
    }
}

주요 코드 설명:

  • Intent intent = new Intent(MainActivity.this, SecondActivity.class); - Intent 객체를 생성하여 MainActivity에서 SecondActivity로 이동한다는 의도를 표현한다.
  • intent.putExtra("name", name); - Intent에 데이터를 추가한다. 여기서는 이름과 나이를 추가한다.
  • startActivity(intent); - SecondActivity를 시작한다.

SecondActivity.java

package com.kks.lifecycle;

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

public class SecondActivity extends AppCompatActivity {

    TextView txtName;
    TextView txtAge;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        txtName = findViewById(R.id.txtName);
        txtAge = findViewById(R.id.txtAge);

        // MainActivity로부터 전달받은 데이터를 받는다
        String name = getIntent().getStringExtra("name");
        int age = getIntent().getIntExtra("age", 0);

        txtName.setText("이름은 " + name);
        txtAge.setText("나이는 " + age + "세");
    }
}

주요 코드 설명:

  • String name = getIntent().getStringExtra("name"); - Intent로부터 전달된 데이터를 받는다.
  • int age = getIntent().getIntExtra("age", 0); - 나이를 받는다.
  • txtName.setText("이름은 " + name); - 받은 데이터를 화면에 표시한다.

 

실행결과