Kotlin实现ListView

本文详细介绍了如何使用Kotlin语言来实现ListView的功能,包括展示效果及具体的代码实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kotlin实现ListView

一、效果

在这里插入图片描述

二、代码实现

//Activity类
package day01.bw.com.mykotlinapplication

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.ListView
import org.json.JSONObject
import java.net.URL

class MainActivity : AppCompatActivity() {

    var listView:ListView? = null
    var list:ArrayList<Food>?=ArrayList()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        listView = findViewById(R.id.listView)
        Thread(Runnable {
            var readText:String = URL("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1").readText()
            val jsonObject = JSONObject(readText)
            val jsonArray = jsonObject.getJSONArray("data")
            for(i in 0..jsonArray.length()-1 step 1){
                val jsonObject1 = jsonArray.getJSONObject(i)
                val title = jsonObject1.getString("title")
                val foos_str = jsonObject1.getString("food_str")
                val pic = jsonObject1.getString("pic")
                list?.add(Food(title,foos_str,pic))
            }
        }).start()
        listView?.adapter=MyAdapter(this,list!!)

    }
}

//自定义适配器实现BaseAdapter
package day01.bw.com.mykotlinapplication

import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.ImageView
import android.widget.TextView
import com.bumptech.glide.Glide

class MyAdapter(var context: Context,var arr:ArrayList<Food>) : BaseAdapter() {

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        var vH:ViewHolder?=null
        var view:View?=null
        if(convertView==null){
            view=View.inflate(context,R.layout.listview_item,null);
            vH=ViewHolder();
            vH.textView=view.findViewById(R.id.title)
            vH.textView1=view.findViewById(R.id.food_str)
            vH.imageView=view.findViewById(R.id.image)
            view.tag=vH
        }else{
            view = convertView
            vH = view.tag as ViewHolder
        }
        vH.textView?.text=arr.get(position).title
        vH.textView1?.text=arr.get(position).food_str
        Glide.with(context).load(arr.get(position).pic).into(vH.imageView)
        return view!!
    }
    inner class ViewHolder{
        var textView:TextView?=null
        var textView1:TextView?=null
        var imageView:ImageView?=null
    }


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

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

    override fun getCount(): Int {
        return arr.size
    }
}
//Bean类
package day01.bw.com.mykotlinapplication

class Food {

    constructor(title: String?, food_str: String?, pic: String?) {
        this.title = title
        this.food_str = food_str
        this.pic = pic
    }

    var title:String?=null
    var food_str:String?=null
    var pic:String?=null

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值