个性化阅读
专注于IT技术分析

Kotlin Android ListView

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

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

Kotlin Android ListView示例

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

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

val language = arrayOf<String>("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<String>(this, android.R.layout.simple_list_item_1, language)
    listView.adapter = arrayAdapter
}

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

<string-array name="technology_list">
        <item>C</item>
        <item>C++</item>
        <item>Java</item>
        <item>.Net</item>
</string-array>

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

activity_main.xml

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

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="example.srcmini02.com.kotlinlistview.MainActivity">


    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="fill_parent" />
</android.support.constraint.ConstraintLayout>

strings.xml

在strings.xml文件中, 创建一个字符串数组, 然后在item标记中添加列表项。

<resources>
    <string name="app_name">Kotlin ListView</string>
    <string-array name="technology_list">
        <item>C</item>
        <item>C++</item>
        <item>Java</item>
        <item>.Net</item>
        <item>Kotlin</item>
        <item>Ruby</item>
        <item>Rails</item>
        <item>Python</item>
        <item>Java Script</item>
        <item>Php</item>
        <item>Ajax</item>
        <item>Perl</item>
        <item>Hadoop</item>
    </string-array>
</resources>

MainActivity.kt

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

package example.srcmini02.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<String>("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<String> = resources.getStringArray(R.array.technology_list)
        val arrayAdapter = ArrayAdapter<String>(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()
        }
    }
}

输出:

Kotlin Android ListView
Kotlin Android ListView
赞(0)
未经允许不得转载:srcmini » Kotlin Android ListView

评论 抢沙发

评论前必须登录!