Kotlin bundle로 데이터 찾기
조회수 2470회
안녕하세요 kotlin으로 앱을 하나 만들어 보고 있는데 recyclerview를 통해서 앱을 하나 만들고 있습니다.
제가 지금 recyclerview에 onclicklistener을 주어 아이템을 클릭시 새로운 activity로 이동하는 앱을 만들었는데, Bundle을 통해서 데이터 값을 가져왔습니다. 그런데 bundle을 통해 가져온 특정 아이템을 쓰고 싶은데 혹시 어떻게 쓰는지 아시는분 알려주시면 감사하겠습니다.
public class ViewHolder(itemView: View, val itemClick: (Item) -> Unit)
: RecyclerView.ViewHolder(itemView){
val album = itemView.item_album
val artist = itemView.item_content
fun bind(item: Item, context: Context){
album.setImageResource(item.album)
artist.setText(item.artist)
itemView.setOnClickListener{
itemClick(item)
var bundle = Bundle()
bundle.putSerializable("songData", item)
var intent = Intent(context, MusicFirstActivity::class.java)
intent.putExtra("bundle",bundle)
context.startActivity(intent)
Log.d("", "아이템 클릭: " + intent.toString() + bundle.toString())
}
//itemview가 클릭 됐을 때 처리하는 일을 itemClick으로 설정한다.
Log.d("", "홀더 결과: " + itemClick.toString())
}
}
먼저, recyclerview에 holder부분 입니다. 홀더 부분에서 클릭 이벤트를 주는 동시에 bundle로 데이터 값을 가져왔습니다.
var intent = intent
var data = intent.getBundleExtra("bundle")
Log.d("from Recycle: ", "받은 데이터: " + data.toString())
var fragment = FirstFragment()
var bundle = Bundle()
bundle.putBundle("data", data)
fragment.arguments = bundle
Log.d("", "activity send: " + data.toString() + bundle.toString())
FirstFragment.newInstance(data, data)
val adapter = FirstPageAdapter(supportFragmentManager)
view_pager_pictures.adapter = adapter
그리고 클릭시 받는 activity 부분 입니다.
fun newInstance(param1: Bundle, param2: Bundle): FirstFragment { val fragment = FirstFragment() val args = Bundle() args.putBundle("data", param1) args.putBundle("data", param2) fragment.arguments = args Log.d("from Activity: ", "result" + param1 + param2) return fragment }
그리고 이렇게 새로운 fragment로 newinstance를 통해 데이터를 받아 왔는데 제가 bundle로 받은 image파일을 사용하고 싶은데 어떻게 사용하는지가 궁금합니다.
댓글 입력