How to use getter setter in kotlin for listview


#1

Hi guys i want to make listview with dynamic load data in arraylist using model(getter/setter). How can i do.?


#2

Could you please explain in more detail which part of the task presents difficulties for you? Are you building an Android application?


#3

ya… i’m building android application but i’m trying to bind json data in model with arraylist but nither i get any resource for the get json data like java…(Like http Asynchtask OR Volly for networking call to get json data…) nor getting bind json data in model.


#4

What do you mean by “I don’t get any resource”? You can use any Java libraries in Kotlin, including Volley.


#5

this is my adapter.kt

class testAdapter( val context: Context, var rowItems: ArrayList) : BaseAdapter() {

override fun getCount(): Int {
    return rowItems.size
}

override fun getItem(i: Int): ArtGallery {
    return rowItems[i]
}

override fun getItemId(i: Int): Long {
    return i.toLong()
}

constructor(rowItems: ArrayList<ArtGallery>) : this(context , rowItems) {
    this.rowItems = rowItems;
}

override fun getView(i: Int, convertView: View?, parent: ViewGroup): View {
    var convertView = convertView
    if (convertView == null) {
       convertView= LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_row, parent, false);
    }

}

and here where i’m set adapter to listview…like this…
{
val restaurant_list: ListView = findViewById(R.id.restaurant_lv) as ListView

    rowItems = ArrayList()
    val list_adapter = testAdapter(applicationContext,rowItems)
    restaurant_list.adapter = list_adapter

}

using volley

{
val repoName = jsonObject.getString(“Restaturant_name”)
val fullName = jsonObject.getString(“Category”)
val img_url = jsonObject.getString(“img”)

                    val items = ArtGallery(repoName, fullName, img_url)
                    items.artist = repoName
                    items.title = fullName
                    items.main_image = img_url

                    rowItems.add(items)

}
but i didn’t get data i adapter nor in arraylist…where i’m doing mistake…?


#6

Hello,

Download source code from (Listview in Kotlin Android).

Model.kt:

public class Model_flower{
var str_name:String ="“
var str_des:String =”"
var int_image:Int=0

constructor(str_name:String,int_image:Int,str_des:String){
    this.int_image=int_image
    this.str_name=str_name
    this.str_des=str_des

}

CustomAdapter.kt:

package com.deepshikha.listviewinkotlin

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.ImageView
import android.widget.TextView

class CustomAdapter(context: Context,al_flower:ArrayList<Model_flower>) : BaseAdapter(){

private val mInflator: LayoutInflater
private val al_flower:ArrayList<Model_flower>

init {
    this.mInflator = LayoutInflater.from(context)
    this.al_flower=al_flower
}

override fun getCount(): Int {
    return al_flower.size
}

override fun getItem(position: Int): Any {
    return al_flower.get(position)
}

override fun getItemId(position: Int): Long {
    return position.toLong()
}

override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? {
    val view: View?
    val vh: ListRowHolder
    if (convertView == null) {
        view = this.mInflator.inflate(R.layout.adapter_layout, parent, false)
        vh = ListRowHolder(view)
        view.tag = vh
    } else {
        view = convertView
        vh = view.tag as ListRowHolder
    }

    vh.label.text = al_flower.get(position).str_name
    vh.tv_des.text = al_flower.get(position).str_des
    vh.iv_image.setImageResource(al_flower.get(position).int_image)
    return view
}

}

private class ListRowHolder(row: View?) {
public val label: TextView
public val tv_des: TextView
public val iv_image: ImageView

init {
    this.label = row?.findViewById<TextView>(R.id.tv_name) as TextView
    this.tv_des = row?.findViewById<TextView>(R.id.tv_des) as TextView
    this.iv_image = row?.findViewById<ImageView>(R.id.iv_flower) as ImageView
}

}

Thanks!


#7

Thanks !