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()
}
}
}
输出:
评论前必须登录!
注册