📜  Kotlin Android ListView

📅  最后修改于: 2021-01-05 08:21:44             🧑  作者: Mango

Kotlin Android ListView

Android ListView是一个视图组件,其中包含项目列表,并显示在可滚动列表中。使用Adapter类将列表项自动添加到列表中。 Adapter类在AdapterViews其他View组件(ListView,ScrollView等)之间桥接数据列表。

调用setAdapter (适配器)将适配器与列表连接,以在列表视图中显示项目。要了解有关Android ListView的更多信息,请访问https://www.javatpoint.com/android-listview-exampler

Kotlin Android ListView示例

在此示例中,我们将创建一个ListView并对列表项执行单击操作。可以在类文件中或在单独的文件(例如字符串.xml)中创建列表的项。

例如,在类文件中创建列表项,并将其添加到ArrayAdapter类中:

val language = arrayOf("C","C++","Java",".Net","Kotlin","Ruby","Rails","Python","Java Script","Php","Ajax","Perl","Hadoop")
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val arrayAdapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,language)
    listView.adapter = arrayAdapter
}

在单独的字符串.xml文件中创建列表项,并将其添加到ArrayAdapter类上:


        C
        C++
        Java
        .Net


val language:Array = resources.getStringArray(R.array.technology_list)
val arrayAdapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,language)
listView.adapter = arrayAdapter

activity_main.xml

添加一个ListView组件以显示activity_main.xml文件中的项目列表。





    

字符串.xml

字符串.xml文件中,创建一个字符串数组,并将列表项添加到item标记中。


    Kotlin ListView
    
        C
        C++
        Java
        .Net
        Kotlin
        Ruby
        Rails
        Python
        Java Script
        Php
        Ajax
        Perl
        Hadoop
    

MainActivity.kt

MainActivity.kt类文件中添加以下代码。在此类中,我们使用resource.getStringArray()方法从字符串.xml文件中获取项目列表。使用应用程序上下文初始化的ArrayAdapter类将列表和数组项的资源类型设置为参数。 listView.adapter = arrayAdapter将适配器设置为ListView。要对列表项执行点击操作,请调用OnItemClickListener {}

package example.javatpoint.com.kotlinlistview

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.*
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

   // val language = arrayOf("C","C++","Java",".Net","Kotlin","Ruby","Rails","Python","Java Script","Php","Ajax","Perl","Hadoop")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val language:Array = resources.getStringArray(R.array.technology_list)
        val arrayAdapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,language)

        listView.adapter = arrayAdapter
        listView.onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, position, id ->
            val selectedItem = adapterView.getItemAtPosition(position) as String
            val itemIdAtPos = adapterView.getItemIdAtPosition(position)

            Toast.makeText(applicationContext,"click item $selectedItem its position $itemIdAtPos",Toast.LENGTH_SHORT).show()
        }
    }
}

输出: