本文主要讲ListView和RecycleView的基本使用,以及如何自定义Adapter,设计自己喜欢的Item样式,但具体原理不涉及,等以后有时间在记录。
ListView和RecycleView均为Android控件,是布局中特别重要的控件,用来显示一列一列的数据,Adapter是适配器,用于填充数据和设计Item样式,ListView有自带的Adapter,RecycleView需自定义Adapter。
一、ListView
1. 基本使用
(1)创建一个空的Listview
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
(2)使用自带Adapter填充数据
在.java文件中获得这个ListView后,使用Adapter为这个ListView填充数据,常用的Adapter有ArrayAdapter、SimpleAdapter。随着ListView中内容的丰富,这两种Adapter很难满足要求,因此现在一般使用自定义的Adapter来填充数据。现在使用ArrayAdapter演示填充数据,其他自带Adapter原理一样,只是参数不同,样式也有点不同,如果需求简单,可以直接使用自带的Adapter。
listview = (ListView) findViewById(R.id.listview);
String[] datas= {"第一行", "第二行", "第三行",};
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.activity_main, datas);
listview .setAdapter(arrayAdapter);
如上,通过ID获取Listview控件,datas为数据,声明定义arrayAdapter的函数的三个参数分别为:
①this: 代表了访问整个Android应用的接口,即context。几乎创建所有组件都需要传入Context对象。
②activity_main: 一个布局页面,即ListView所在布局文件。
③datas:数组或List ,负责提供数据
(3)为自带Adapter修改字体和颜色
ListView是无法像其他控件一样直接在控件布局设置字体等属性,一般都是默认使用其字体、颜色等。但此时你又不想自定义Adap,只是想修改个颜色字体间距等等,可以新建一个布局文件,如detail.xml,该布局只含有一个TextView,其他组件均不可存在,包括ConstraintLayout等布局组件。如下,你可以在里面自由设计字体边距等等。
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/operation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D5000000"
android:textSize="20sp"/>
之后,需修改刚刚声明适配器的语句,将第二个参数activity_main(即listview所在页面)改为TextView所在页面,即detail。