使用 ArrayAdapter 实现 Adapter 虽然比较简单,但是只能实现比较单一的列表,即毎个列表项只能是 Text View ,如果开发者考虑在每一行放置不同的组件,则可以考虑使用 SimpleAdapter .下面将通过一个实例讲解 SimpleAdapter 的使用。
主布局界面代码同基于数组创建 List View 的布局代码一样。
使用 SimpleAdapter ,需要在 layout 目录下添加一个自定义的布局件 list _ item _ layout .xml ,即是每一行的布局样式,代码如下:
layout.xml
layout2.xml:
Activity代码如下:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private String[] name={"张三","李四","王五"};
private String[] desc={"唱歌","跳舞","打球"};
private int[] icon=new int[]{R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout2);
ListView listView=(ListView)findViewById(R.id.listview1);
List
使用 SimpleAdapter 最重要的是它的5个参数,尤其是后面4个,接下来就讲一下这4个参数。
首先第二个参数是 List Extends Мвр< String ,?>>类型的集合对象,该集合中每个 Map < String ,?>对象生成一行;
第三个参数是指定一个界面布局的 ID ,这里引用了一个自定义的布局 list _ item_ Layout .xml 文件;
第四个参数是 String [ ]类型的参数,该参数决定提取哪些内容显示在 listview 的毎一行;
最后一个是 ini [ ]类型的参数,决定显示哪些组件。
结果显示如下:



