데이터 : SendActivity → ReceiveActivity

SendActivity

class SendActivity : AppCompatActivity() {
	  override fun onCreate(savedInstanceState: Bundle?) {
	      super.onCreate(savedInstanceState)
	      setContentView(R.layout.activity_send)
	
	      Log.d("Log","SendActivity")
		
	      val intent = Intent(this,ReceiveActivity::class.java)
	      intent.putExtra("key","12345") //key,전달할값
	
				//startActivity(Intent(this@SendActivity, ReceiveActivity::class.java))
	      startActivity(intent)  //이게 꼭 뒤에 와야한다!!!
	  }
}

Intent(현재 Activity, 값을 전달할 Activity)

putExtra로 값 전달 : 데이터를 받을 때 키값으로 받는다.

페이지 전환(먼저) → 값 전달 (그 다) 그렇지 않으면 null 값이 반환 된다. (중요!!!)

페이지 이동과 값 전달은 같은 Activity에서 발생되어야 한다!!

ReceiveActivity

class ReceiveActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_receive)

        Log.d("Log","ReceiveActivity")

        val data:String?
        data = intent.getStringExtra("key")
        
        Log.d("Log","value : " + data)
    }
}

intent가 엑티비티 기본 속성이기 때문에 전달된 인텐트는 바로 호출해서 사용 가능

getStringExtra 로 값 받음 : 키값으로 받음 getIntExtra, getCharExtra 등 다양한 자료형 가능

값 받고 다시 보낼때, 꼭 변수로 만들어서 사용 해야 한다.

//ex (올바른 방식)
val username = intent.getStringExtra("username").toString()  //받고
val intent = Intent(this, ProfileSettingActivity::class.java)
intent.putExtra("username", username)  //보내기

//ex (잘못된 방식)
val intent = Intent(this, ProfileSettingActivity::class.java)
intent.putExtra("username", intent.getStringExtra("username").toString())

📢참고

https://hydroponicglass.tistory.com/317

https://velog.io/@soyoung-dev/안드로이드-액티비티-데이터-전달