[Android] 두 Activity간에 intent 만들기

제철맞은생선·2022년 12월 26일
0

ANDROID

목록 보기
4/12
post-thumbnail

인텐트란 어플리케이션 구성요소 간에 작업 수행을 위한 정보를 전달하는 역할을 한다. 예를 들어 어떤 액티비티에서 다른 액티비티로 넘어갈 때 데이터를 같이 넘기고 싶다면 인텐트를 통해 구현이 가능하다.

간단한 인텐트 활용법을 들여다보자. 해당 코드는 MainActivity에서 텍스트를 입력받고 버튼을 누르면 FirstActivity로 화면을 전환하면서 입력 텍스트를 화면에 띄우는 예제이다.

MainActivity의 경우

class MainActivity : AppCompatActivity() {
    private lateinit var viewBinding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        viewBinding = ActivityMainBinding.inflate(layoutInflater);
        setContentView(R.layout.activity_main)

        viewBinding.btn1.setOnClickListener {
            val intent = Intent(this, FirstActivity::class.java)
            intent.putExtra("text", viewBinding.editText.text.toString())
            startActivity(intent)
        }
    }
}
  • setOnClickListener로 버튼이 눌리는 경우 발생할 이벤트를 정의해준다.
  • 인텐트 객체를 선언해준다. 객체의 생성자는 호출하는 액티비티의 상태와 넘어갈 다음 액티비티의 상태를 인자로 받는다.
  • putExtra로 넘길 데이터를 지정한다. 인자는 넘길 데이터의 식별을 위한 키 값과 데이터이다.
  • startActivity(인텐트 객체)로 인텐트를 실행시킨다. 즉, 생성자의 두번째 인자로 넘겼던 액티비티를 실행하면서 putExtra에 넣은 데이터를 넘겨주게 된다.

FirstActivity의 경우

class FirstActivity : AppCompatActivity() {
    private lateinit var viewBinding:ActivityFirstBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        viewBinding = ActivityFirstBinding.inflate(layoutInflater)
        setContentView(viewBinding.root)

        val extras = intent.extras
        val data = extras!!["text"] as String
        viewBinding.tvFirst.text = data
    }
}
  • intent.extras는 인텐트를 보내오는 activity에서 호출한 putExtra에 넣었던 데이터를 저장하는 배열이다.
  • putExtra에 데이터를 넣을 때 사용한 키 값을 통해 데이터 값을 불러온다.

0개의 댓글