前言
在Android
开发过程中,我们经常会用到列表控件,今天就向大家介绍一款列表控件ListView
今天涉及知识:
- ListView简介
- ListView在Activity中使用
- 效果图和项目结构图
- 适配器ListAdapter源码
先来波效果图:
![](https://img.haomeiwen.com/i6127340/2f62650747758d30.gif)
一. ListView简介
ListView
主要用于展示列表信息,常与适配器BaseAdapter
结合使用。
二. ListView在Activity中使用
首先在MainActivty
对应的布局activity_main.xml
中添加ListView
控件,则activity_main.xml
布局代码如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
android:background="@color/color_f2f2f2"
tools:context=".ui.MainActivity">
<TextView
android:id="@+id/mTvTest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center"
android:text="测试"
android:textColor="@color/black"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/mBtnTest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:layout_marginTop="10dp"
android:text="kotlin显示dialog"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mTvTest" />
<ListView
android:id="@+id/mListView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mBtnTest"/>
</androidx.constraintlayout.widget.ConstraintLayout>
下面贴出ListView
在MainActivity
中使用代码:
open class MainActivity : AppCompatActivity(), View.OnClickListener {
private var nameList:MutableList<String> = mutableListOf("幼稚园","小学","初中","高中","大学")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initData()
setListener()
}
private fun initData() {
//初始化适配器
var adapter:ListAdapter<String> = ListAdapter(nameList,this)
//ListView设置适配器
mListView.adapter=adapter
//item点击事件
mListView.setOnItemClickListener(object:AdapterView.OnItemClickListener{
override fun onItemClick(
parent: AdapterView<*>?,
view: View?,
position: Int,
id: Long
) {
toast("点击了第${position}项,值为${nameList[position]}")
}
})
}
private fun setListener() {
mBtnTest.setOnClickListener(this@MainActivity)
}
override fun onClick(v: View) {
when(v.id){
R.id.mBtnTest -> {
}
}
}
}
三.效果图和项目结构图
![](https://img.haomeiwen.com/i6127340/2f62650747758d30.gif)
![](https://img.haomeiwen.com/i6127340/e3b174708c35d122.png)
四. 适配器ListAdapter源码
下面给出ListView
对应适配器ListAdapter
源码:
网友评论