본문 바로가기
Android

[Android] Intent(인텐트)로 화면 간 이동 및 데이터 전달

by 준토리73 2023. 1. 9.

✔ Intent란 

Component를 실행하기 위해 시스템에 넘기는 정보이다. 

 

 

✔ 화면 간 이동하기 

1. 인텐트로 다른 액티비티 실행하는 방법

public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Intent intent = new Intent(this, OtherActivity.class);
 
 
        Button bt1 = findViewById(R.id.button);
        bt1.setOnClickListener(new View.OnClickListener(){
            public void onClick (View v){
                intent.putExtra("name", "gildong");
                startActivity(intent1);
            }
        });
    }
}

 

→ startActivity(intent)로 실행해줘야함. 

 

 

 

 

✔ 데이터 전달하기

  • 데이터를 전달할 액티비티에서 여러 형태의 값을 put 할 수 있다. 
  • 전달하는 액티비티
package com.example.a200423_intentactivity

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val secondIntent = Intent(this, SecondActivity::class.java) // 인텐트를 생성
        secondIntent.putExtra("email", "hello@naver.com")   // Intent에 이메일 주소 넣기
        secondIntent.putExtra("password", 1234)             // Intent에 비밀번호 넣기

        btnMove.setOnClickListener { // 버튼 클릭시 할 행동
            startActivity(secondIntent)  // 화면 전환하기
        }
    }
}
  • intent.putExtra("KEY", "Value") 하여 데이터를 넣어준다. 

 

 

  • 받는 액티비티
package com.example.a200423_intentactivity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_second.*

class SecondActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)

        val id = intent.getStringExtra("email") // Intent에서 Key를 email로 가지고 있는 값 가져오기
        val pw= intent.getIntExtra("password", 0) // Intent에서 Key를 password로 가지고 있는 값 가져오기
                                                  // 두번째 인자 값의 뜻은.. 값을 찾지 못했을땐 0을 대신 넣겠다는 뜻

        txtId.text = id             // 텍스트뷰에 아이디 출력
        txtPw.text = pw.toString()  // 텍스트뷰에 비밀번호 출력

        btnBack.setOnClickListener {
            finish()    // 액티비티 종료
        }
    }
}
  • getStringExtra("KEY") 형태로 데이터를 받는다. 

 

출처) https://www.crocus.co.kr/1521

 

Android에서 Intent란?

Intent Component를 실행하기 위해 시스템에 넘기는 정보이다. 즉, 실행하고자 하는 컴포넌트 정보를 담은 Intent구성 -> 시스템 -> Intent 정보를 통해 그에 맞는 Component를 실행하게 된다. 안드로이드는 C

www.crocus.co.kr

 

 

댓글