Как извлечь переменную из внутреннего класса в функцию в Kotlin - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь получить значение testvar из внутреннего класса Adapter для функции addtocart, но не получаю значение. Я могу получить значение внутри класса адаптера, но не за его пределами. Код:

 inner class MoviesAdapter : RecyclerView.Adapter<MoviesAdapter.MovieViewHolder>() {
            private val movies: MutableList<Movie> = mutableListOf()
            override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MovieViewHolder {
                return MovieViewHolder(layoutInflater.inflate(R.layout.item_movie_layout, parent, false))
            }
            override fun getItemCount(): Int {
                return movies.size
            }
            override fun onBindViewHolder(holder: MovieViewHolder, position: Int) {
                holder.bindModel(movies[position])
            }
            fun setMovies(data: List<Movie>) {
                movies.addAll(data)
                notifyDataSetChanged()
            }
            inner class MovieViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

                val movieGenreTxt : TextView = itemView.findViewById(R.id.movieGenre)
                val movieYearTxt : TextView = itemView.findViewById(R.id.movieYear)
                val movieAvatarImage : ImageView = itemView.findViewById(R.id.movieAvatar)
                val movieDescription: TextView =itemView.findViewById(R.id.movieDescription)

                fun bindModel(movie: Movie) {
                //    movieTitleTxt.text = movie.name
                    movieGenreTxt.text = movie.menu
                    movieYearTxt.text = movie.price
                    Picasso.get().load(movie.picture).into(movieAvatarImage)
                    movieDescription.text=movie.description
                    var movieName:String= movie.name!!

                   var testvar=movie.name.toString()
                }
            }

        }
    fun addtocart(view: View)
    {
        Toast.makeText(context,"Success on Click", Toast.LENGTH_SHORT).show()
       print testvar 
    }

1 Ответ

0 голосов
/ 29 октября 2018

Думаю, вы хотите добавить кнопку в RecyclerView.

В этом случае setOnclicklistener в пределах

 inner class MovieViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {


 val addtocart = itemView.findViewById<Button>(R.id.viewprofile)


         addtocart!!.setOnClickListener {
                      }} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...