Here is my main class where I'm adding JASON data in ArrayList using volley. Toast show the JASON data but array does not show any data. I'm trying to solve my error from last 3 days. I also read many questions on stack but i have no solution for this please help me
var item = ArrayList<dumy_item_list>()
var url = "https://apps.faizeqamar.website/charity/api/organizations"
var rq: RequestQueue = Volley.newRequestQueue(this)
var sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
var jsonResponse = JSONObject(response)
var jsonArray: JSONArray = jsonResponse.getJSONArray("data")
for (i in 0..jsonArray.length() - 1) {
var jsonObject: JSONObject = jsonArray.getJSONObject(i)
var name = jsonObject.getString("name")
val data = dumy_item_list()
data.setName(jsonObject.getString(name))
item.add(data)
Toast.makeText(applicationContext, "NGO Name is : $name", Toast.LENGTH_LONG).show()
}
},
Response.ErrorListener { error ->
Toast.makeText(applicationContext, error.message, Toast.LENGTH_LONG).show()
})
rq.add(sr)
var away_recycler = findViewById<RecyclerView>(R.id.away_recycler)
var adaptor = custom_adopter(item, applicationContext)
away_recycler.layoutManager = GridLayoutManager(applicationContext, 1)
away_recycler.adapter = adaptor
}
Here is my adapter class where I'm using getName() function
class custom_adopter(data: ArrayList<dumy_item_list>, var context: Context) :
RecyclerView.Adapter<custom_adopter.viewHolder>() {
var data: List<dumy_item_list>
init {
this.data = data
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): custom_adopter.viewHolder {
var layout = LayoutInflater.from(context).inflate(R.layout.dumy_item, parent, false)
return viewHolder(layout)
}
override fun onBindViewHolder(holder: custom_adopter.viewHolder, position: Int) {
holder.tv_dummy_name_donnor.text = data[position].getName()
holder.card.setOnClickListener {
var intent = Intent(context, ngosProfile::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(context, intent, null)
}
}
override fun getItemCount(): Int {
return data.size
}
class viewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
internal var tv_dummy_name_donnor: TextView
internal var card: CardView
init {
tv_dummy_name_donnor = itemView.findViewById(R.id.tv_dummy_name_donnor)
card = itemView.findViewById(R.id.card)
}
}
}