无论是在Mobile开发还是桌面开发上,我们都需要显示数据,Android中没有可以直接加载数据的数据网格,任何数据的显示都需要自定义布局。
其中最常用的两种显示显示数据的控件,一个是ListView,另一个是RecyclerView,他们都需要借助Adapter来动态加载数据,在本节的学习中,我们会讲解如何使用ListView x Adapter的方式加载数据。
ListView其实只是一个容器,通过Adapter和指定的子项布局来动态的把数据呈现给用户,除了这种方式,ListView还可以直接绑定一个arrays文件用来显示静态数据。
常见的Adapter对象有:ArrayAdapter、SimpleAdapter、重写过的BaseAdapter,加上通过绑定arrays文件显示数据,我一共做了四个Demo,让我们来看一下。
一、ListView x arrays文件
这种方式很有局限性,只能用来显示静态的文本数据,使用步骤:
1.在values目录下新建一个arrays.xml文件
2.编写arrays.xml文件,声明一个string类型的数组标签,并添加三个子项:
- Value1
- Value2
- Value3
3.把ListView的entities属性设置为指定数组:
二、ListView x ArrayAdapter文件
【数据呈现—ListView|数据呈现—ListView x Adapter】ArrayAdapter是所有Adapter中最简单的一种,因为简单,所以功能也很局限,它只能显示单条文本数据,这点跟静态绑定一样:
Android代码:
public class ListViewDemo1Activity extends AppCompatActivity {List lsData = https://www.it610.com/article/new ArrayList<>();
ArrayAdapter arrayAdapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_demo1);
lsData.add("张三");
lsData.add("李四");
lsData.add("王五");
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, lsData);
listView = findViewById(R.id.lv);
listView.setAdapter(arrayAdapter);
}
}
1.因为ArrayAdapter只能显示文本数据,所以数据源通常是string数组或者列表
2.实例化ArrayAdapter调用的构造方法中,第一个不用说,是加载列表用的Context对象,传入当前Activity,第二个是布局文件,我们传递一个系统提供的布局文件,该布局文件中只有一个名为text1的TextView,第三项是数据源,用来加载需要绑定的数据,我们传入String集合。
3.把ArrayAdapter和ListView做绑定
三、ListView x SimpleAdapter文件
上面的例子讲了怎么借助ArrayAdapter加载文本列表,但是我们通常要显示的数据肯定不只是一条文本,那怎么显示复杂数据呢?有两种方法,一种是使用SimpleAdapter,另一种是使用基于BaseAdapter定制的Adapter,我们先来看第一种:
子项布局XML代码:
Android代码:
private List
1.加载复杂的数据需要先编写一个布局文件,布局文件的代码已经在上面列出来了。
2.声明一个List