В RecycleView ничего не отображается - PullRequest
0 голосов
/ 20 декабря 2018

Привет, ребята, у меня есть эта проблема в Android Studio. Я просто использую компонент Recycleview, и я все сделал правильно, но все равно. Ничего. Дисплей в симуляторе. Кто-нибудь может помочь найти мой код. Все элементы просто выбраны из базы данных.

Адаптер элемента для повторного просмотра (itemadapter.kt)

class ItemAdapter (var context: Context,var list:ArrayList): 
RecyclerView.Adapter(){ override fun onCreateViewHolder(parent: ViewGroup, 
viewType: Int): RecyclerView.ViewHolder { var 
v:View=LayoutInflater.from(context).inflate(R.layout.item_row,parent) return 
ItemHolder(v) }

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

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: 
Int) {
(holder as  ItemHolder).bind(list[position].name,list[position].price,list[position].photo)
}


class ItemHolder(itemView:View):RecyclerView.ViewHolder(itemView)
 {
   fun bind(n:String,p:String,u:String)
    {
    itemView.item_name.text =n
    itemView.item_price.text=p
    var web:String=" http://192.168.43.14/delivery/images/"+ u
    web=web.replace("","%20")
    Picasso.with(itemView.context).load(web).into(itemView.item_photo)
  }

 }
}

activity_item.kt

var cat:String=intent.getStringExtra("cat")
var url="http://192.168.43.14/delivery/get_items.php?category= "+cat
var list=ArrayList<Item>()

var rq: RequestQueue = Volley.newRequestQueue(this)
var jar= JsonArrayRequest(Request.Method.GET,url,null, Response.Listener { response ->

    for (x in 0..response.length() -1)
        list.add(Item(response.getJSONObject(x).getInt("id"),response.getJSONObject(x).getString("name"),
                response.getJSONObject(x).getString("price"),response.getJSONObject(x).getString("photo")))


    var adp=ItemAdapter(this,list)
    item_rv.layoutManager = LinearLayoutManager(this)
    item_rv.adapter=adp

}, Response.ErrorListener { error ->
    Toast.makeText(this,error.message, Toast.LENGTH_LONG).show()

})
rq.add(jar)

}
}

Item.kt (файл класса)

class Item{
     var id:Int
     var name:String
     var price:String
     var photo:String

     constructor(id:Int,name:String,price:String,photo:String)
     {
        this.id=id
        this.name=name
        this.price=price
        this.photo=photo
      }
 }

пожалуйстаребята, помогите мне, где я все испорчу, потому что я застрял прямо там ~!

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Сначала воспользуйтесь руководством, чтобы узнать, как сделать один адаптер и держатель RecycleView:

Ваш адаптер должен выглядеть следующим образом:

class ItemAdapter (val context: Context, val list:ArrayList<Item>): RecyclerView.Adapter<ItemHolder>(){

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder { 
        val v: View = LayoutInflater.from(context).inflate(R.layout.item_row, parent, false)
        //.inflate(R.layout.item_row, parent, false) *false is important 
        return ItemHolder(v)
    }

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

    override fun onBindViewHolder(holder: ItemHolder, position: Int) {
        holder.itemName.text = "${list[position].name}"
        holder.itemPrice.text = "${list[position].price}"
        val web:String="http://192.168.43.14/delivery/images/${list[position].photo}".replace(" ","%20")
        Picasso.with(holder.itemView.context).load(web).into(holder.item_photo)
    }
}

class ItemHolder(itemView:View):RecyclerView.ViewHolder(itemView) {
    val itemName = itemView.item_name
    val itemPrice = itemView.item_price
    val itemPhoto = itemView.item_photo
}

Вы можете купить мне Кофе :) для следующеговопрос

FYI

var item = "item VARIABLE"
val item = "item VALUE"
0 голосов
/ 20 декабря 2018

Вы забыли сообщить свой список, пожалуйста, добавьте LOC adp.notifyDataSetChanged()

var adp=ItemAdapter(this,list)
item_rv.layoutManager = LinearLayoutManager(this)
item_rv.adapter=adp
adp.notifyDataSetChanged()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...