*/Android

[안드로이드] Activity, Fragment 간 데이터 주고받기 2

sssbin 2023. 2. 19. 18:45

 

<전글> 액티비티 -> 액티비티/프래그먼트

https://sssbin.tistory.com/212

 

[안드로이드] Activity, Fragment 간 데이터 주고받기

Activity -> Activity // LoginActivity (온클릭리스너 안에) Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.putExtra("nickname", res.getMessage()); startActivity(intent); // MainActivity (온크리에이트 안에) Int

sssbin.tistory.com

 

 

 

이번엔 Fragment Result API를 이용하여 프래그먼트 -> 액티비티/프래그먼트 를 다뤄보려고 한다!

Fragment Result API는 일회성 데이터를 fragment 간, 혹은 fragment와 host activity 간 전달하고 싶을 때 사용한다.

 

https://developer.android.com/guide/fragments/communicate?hl=ko 

 

 

🌟build.gradle에 의존성 추가

implementation "androidx.fragment:fragment:1.5.3"
implementation "androidx.fragment:fragment-ktx:1.5.3"

 

1️⃣ 데이터 발신 (Fragment)

 

// 데이터 발신
button.setOnClickListener {
    val result = "result"
    
    setFragmentResult("requestKey",
    	bundleOf("bundleKey" to result))
}

 

2️⃣ 데이터 수신 (Fragment, Activity)

// 데이터 수신
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    
    setFragmentResultListener("requestKey") { requestKey, bundle ->
        val result = bundle.getString("bundleKey")
    }
}