Recyclerview показывает только один массив

Я пытаюсь получить два комментария к конкретному сообщению, но RecyclerView показывает только один комментарий.

Это мой тест вызовов API на Postman.

Recyclerview показывает только один массив

Но когда я использую этот вызов в своем приложении, он показывает только один комментарий

Вот следующий код

Два комментарияАдаптер:

class TwoCommentsAdapter (var twocommentsList : ArrayList<Comments>) : RecyclerView.Adapter<TwoCommentsAdapter.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val itemView = LayoutInflater.from(parent.context).inflate(R.layout.two_comment, parent,false)
        return ViewHolder(itemView)
    }

    override fun getItemCount(): Int {
        return twocommentsList.count()
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.comment?.setText(twocommentsList.get(position).comment)
        holder.username?.setText(twocommentsList.get(position).username)
    }

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        var comment : TextView? = null
        var username : TextView? = null
        init {
            this.comment = itemView.findViewById(R.id.comment_txt)
            this.username = itemView.findViewById(R.id.comment_user_txt)
        }
    }
}

Поко:

class Comments(val comment_id : Int, val username : String, val comment: String)

Вызов API:

@FormUrlEncoded
@POST("/api/getTwoComment")
fun getTwoComments(@Field("post_id") post_id: Int): Call<ArrayList<Comments>>

Вызов модернизации в действии:

getMainApp().swiftAPI.getTwoComments(post_id).enqueue(object : Callback<ArrayList<Comments>>{
            override fun onFailure(call: Call<ArrayList<Comments>>?, t: Throwable?) {
                Toast.makeText(this@ViewSinglePostActivity, t?.message, Toast.LENGTH_SHORT)
            }

            override fun onResponse(call: Call<ArrayList<Comments>>?, response: Response<ArrayList<Comments>>?) {
                if (response?.isSuccessful!!){

                    val adapter = TwoCommentsAdapter(response.body()!!)
                    two_comments_rcv.adapter = adapter
                }
            }

        })

Заранее спасибо. Если вы хотите что-нибудь плохое предоставить

Вы пытались зарегистрировать twocommentsList.count() в getItemCount()? Что он регистрирует?

Ranjan 02.02.2019 13:39

то же самое, я использую обычный счет, и он работает правильно, он отлично показывает 2

Ashish 02.02.2019 13:43
stackoverflow.com/a/52493647/6401241 это может вам помочь
Radesh 02.02.2019 13:54

теперь работает

Ashish 02.02.2019 13:55
1
4
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо этого

 override fun getItemCount(): Int {
     return twocommentsList.count()
 }

Использовать это

 override fun getItemCount(): Int {
     return twocommentsList.size
 }

Другой распространенной проблемой является установка неправильной высоты для макета элемента, который вы можете видеть при прокрутке вашего представления или нет, для исправления проверьте это

выражение 'размер типа 'Int' не может быть вызвано как функция

Ashish 02.02.2019 13:42

Теперь он работает правильно, это была ошибка моего XML-файла, который я задал height = match_parent, поэтому он полностью отображал экран.

Ashish 02.02.2019 13:51

Другие вопросы по теме