반응형
액티비티에서 프라그먼트로 data 보내고 받기
arguments와 bundle 필요.
프라그먼트 액티비티 onCreat안에 생성
val bundle: Bundle = Bundle()
bundle.putString("hello","hello")
//arguments에 번들 담기
fragmentone.arguments = bundle
프라그먼트 받는 파일에 생성
override fun onActivityCreated(savedInstanceState: Bundle?) {
val data = arguments?.getString("hello")
Log.d("data", data) //값 없으면 널포인트 뜰것임. 로그캣 활용.
super.onActivityCreated(savedInstanceState)
}
프라그먼트에서 액티비티로 data 보내고 받기
자체 리스너 구현해야함.
프라그먼트 받는 파일에 생성
interface OnDataPassListener{
fun onDataPass(data : String?)
}
lateinit var dataPassListener : OnDataPassListener
override fun onAttach(context: Context?) {
super.onAttach(context)
dataPassListener = context as OnDataPassListener
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Activity의 onCreate에서 했던 작업을 여기에서 한다
pass.setOnClickListener {
dataPassListener.onDataPass("good good")
}
}
프라그먼트 액티비티 클래스 옆에 바로 쓸것
class fragment : AppCompatActivity(), Fragmentone.OnDataPassListener
Implement Member (Alt + Insert) -> onDataPass
override fun onDataPass(data: String?) {
Log.d("pass",""+data)
}
결과화면
xml부분과 중간중간 스킵이 있습니다. 개인적 공부 내용을 적은것이라 자세한 설명을 원하시면 댓글 바랍니다.
반응형
'Before > Android' 카테고리의 다른 글
Android Library(glide) (0) | 2020.03.12 |
---|---|
Context , Thread (0) | 2020.03.12 |
Android UI (0) | 2020.03.11 |
Resource (0) | 2020.03.11 |
Fragment (0) | 2020.03.10 |