簡體   English   中英

Kotlin:將 object 從 recyclerview 傳遞到另一個片段以在單擊時進行編輯

[英]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
        }
    }
}
  }
  1. 在構造函數中添加上下文

     class MoviesAdapter constructor (mCTX:Context,private var movies: List<MovieModel>){..... }
  2. 在適配器中使用上下文啟動第二個ActivityFragment

  3. 使用 Android Bundle()傳遞數據

或實現一個接口

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM