![](/img/trans.png)
[英]Pass Object from one fragment to another fragment when recyclerView item is clicked
[英]Kotlin: Passing object from recyclerview to another fragment to edit when clicked
我剛剛開始學習 kotlin 並且我的應用程序非常基礎,但過去幾天這個基本功能一直給我帶來麻煩。
我的應用中有一個包含兩個片段(A 和 B)的活動。 Fragment A 用於在 recyclerview 中顯示數據。 片段 B 用於使用編輯文本/添加按鈕等添加數據。一切正常。 然后,當用戶在 Fragment AI 的 recyclerview 中選擇一個項目時,想要導航回 Fragment B,傳遞一個參數說用戶現在正在編輯,現在添加並使用所選項目字段填充編輯文本,以便用戶可以編輯。
我的適配器:
class MoviesAdapter constructor(private var movies: List<MovieModel>)
: RecyclerView.Adapter<MoviesAdapter.MainHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MainHolder {
return MainHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.card_movie,
parent,
false
)
)
}
override fun onBindViewHolder(holder: MainHolder, position: Int) {
val movie = movies[holder.adapterPosition]
holder.bind(movie)
}
override fun getItemCount(): Int = movies.size
class MainHolder constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(movie: MovieModel) {
itemView.movie_view_Title.text = movie.title
itemView.movie_view_director.text = movie.director
itemView.movie_view_releaseDate.text = movie.releaseDate.toString()
itemView.movie_view_ratingBar.rating = movie.rating.toFloat()
itemView.movie_view_Image.setImageBitmap(readImageFromPath(itemView.context,movie.image))
itemView.setOnClickListener{
//Pass the movie item to Fragment B to edit & pass argument to say we are editing not adding
}
}
}
}
在構造函數中添加上下文
class MoviesAdapter constructor (mCTX:Context,private var movies: List<MovieModel>){..... }
在適配器中使用上下文啟動第二個Activity
或Fragment
使用 Android Bundle()
傳遞數據
或實現一個接口
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.