오늘은 Fragment 데이터 전달을 이용해서 즐겨찾기 기능을 만들려고 했다.
그런데 개념을 알고는 있는데 전달하는 데이터가 리스트 형태인데, 좀 특이한(?) 리스트다 보니
헤매서 아직도 해결을 못했다...
그래서 아직도 의문이다...
그래도 일단 코드를 올려놓기는 해야겠다.
// 여기서 어떻게 해야 할지...
// 이거를 내일 해결해야 한다... ㅋㅋㅋ
companion object {
@JvmStatic
fun newInstance(param1: List<ImageDocument?>) =
ChoiceFragment().apply {
arguments = Bundle().apply {
// putSerializable(param1)
}
}
}
// MainActivity.kt에서 list를 받아오는데 이 데이터 리스트가 JSON으로 받아온 데이터 클래스에서 추출한(?) 리스트라서 ImageDocument? 타입이다.
// 아무튼 추출해 와서 Fragment 데이터 전달만 하면 된다.
val listData = searchFragmentAdapter.getLikedItems()
fragment(listData)
}
// 분명 Activity -> Fragment 데이터 전달은 이게 맞는데...
private fun fragment(listData: List<ImageDocument?>) {
val fragment = ChoiceFragment.newInstance(listData)
supportFragmentManager.beginTransaction()
.replace(R.id.view_pager, fragment)
.setReorderingAllowed(true)
.addToBackStack(null)
.commit()
}
공식 문서 링크 : 여기 사실 다 들어있다.
그래도 여기에 코드를 작게나마 적어야겠다.
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") // 어떤 형식으로 바꿀지 선택이 가능한 것 같다.
val dateTime = OffsetDateTime.parse(item?.datetime)
val dataTimeFormat = dateTime?.format(formatter)
// dateTime으로 받은 시간을 formatter에 주어진 형식으로 바꾼다는 뜻 같아 보인다.
// DateTimeFormatter <- 이게 진짜 유능하다.