Я пытаюсь получить два комментария к конкретному сообщению, но RecyclerView показывает только один комментарий.
Это мой тест вызовов API на Postman.
Но когда я использую этот вызов в своем приложении, он показывает только один комментарий
Вот следующий код
Два комментарияАдаптер:
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
}
}
})
Заранее спасибо. Если вы хотите что-нибудь плохое предоставить
то же самое, я использую обычный счет, и он работает правильно, он отлично показывает 2
теперь работает
Вместо этого
override fun getItemCount(): Int {
return twocommentsList.count()
}
Использовать это
override fun getItemCount(): Int {
return twocommentsList.size
}
Другой распространенной проблемой является установка неправильной высоты для макета элемента, который вы можете видеть при прокрутке вашего представления или нет, для исправления проверьте это
выражение 'размер типа 'Int' не может быть вызвано как функция
Теперь он работает правильно, это была ошибка моего XML-файла, который я задал height = match_parent, поэтому он полностью отображал экран.
Вы пытались зарегистрировать
twocommentsList.count()вgetItemCount()? Что он регистрирует?