[Kotlin] 사진첩 앱 만들기(6)

이상목·2024년 4월 28일
0

Kotlin

목록 보기
20/20
post-thumbnail

데이터 전달해보기

목차

  1. 이벤트가 발생했을 때 넘겨 줄 데이터 구성.

  2. 데이터 전달될 Activity에서 데이터 받아줄 준비.

  3. Toast를 통해 넘어온 데이터 확인

1. 특정 이벤트 시 넘겨줄 데이터 구성

  • 사진을 클릭했을 때 상세페이지로 이동하면서 데이터를 전달해야하니, MainActivity.kt에서 intent에 putExtra를 통해 데이터를 넘겨준다.
        for (i in imageIds.indices) {
            findViewById<ImageView>(imageIds[i]).setOnClickListener {
                val intent = Intent(this, activityClasses[i])
                // 넘겨줄 데이터
                intent.putExtra("data", i)
                startActivity(intent)
            }
        }



2. 데이터 받아줄 준비

  • 데이터를 받을 Activity에서 데이터를 받아줄 준비를 해준다.
package com.sangmoki.bts_photo

import android.os.Bundle
import android.widget.ImageView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class Bts1Activity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_bts1)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }

        // 넘겨져 온 데이터 받아 Toast로 출력
        val getData = intent.getIntExtra("data", 0)

        val memberImage = findViewById<ImageView>(R.id.btsImageArea)

        if (getData == 1) {
            memberImage.setImageResource(R.drawable.bts_1)
            Toast.makeText(this,"1번 이미지", Toast.LENGTH_SHORT).show()
        }
    }
}



3. Toast를 통해 데이터가 전달되었는지 확인한다.

1번 이미지 클릭시 다음과 같은 Toast 메세지가 나온다.



profile
기록은 기억을 지배한다.

0개의 댓글