首先我们先了解一下SimpleAdapter类。
SimpleAdapter类是用来处理ListView显示数据的,这个类可以将任何自定义的xml布局文件作为列表项来使用。
SimpleAdapter构造方法的原型为:
public SimpleAdapter ( Context context,List> data,int resource,String[] form,int[] to)
参数值 | 关键字或名称的作用 |
context | SimpleAdapter关联的View的运行环境 |
data | 一个Map组成的List。列表种的每个条目对应列表中的一行,每个Map中应该包含from参数中指定的键 |
resource | 定义列表项的布局文件的资源id |
from | 被添加到Map映射上的键名 |
to | 将绑定数据的视图的Id和from参数对应 |
以上是SimpleAdapter的基础知识,接下来我们用一个例子来展示SimpleAdapter的具体使用方法。
创建一个名为ListViewSimpleAdapter的空白Activity,并为其xml文件添加一个ListView组件。
在ListViewSimpleAdapter.java文件中连接xml文件和ListView主键,并创建所需要的数据。
接下来我们要创建一个SimpleAdapter适配器,由SimpleAdapter的基础可知我们需要一个列表项的布局资源。
由此我们新建一个layoutitem1.xml文件,作为一个列表项的资源文件,并在这个xml文件布局。如图所示
准备好以后我们再次回到ListViewSimpleAdapter.java中创建SimpleAdapter适配器,并为适配器添加好对应的参数。
看到getData()报错没关系,我们按alt+enter键创建一个getData()方法用来添加数据,并为listview添加SimpAdapter适配器。
最后在AndroidMainfest.xml中为MainActivity2添加过滤器,运行就行了。
效果图如下:
原代码如下:
ListViewSimpleAdapter.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
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 ListViewSimpleAdapter extends AppCompatActivity {
ListView listView;
int[] imageArr={R.drawable.diqiu,R.drawable.jinxing,R.drawable.muxing,R.drawable.tuxing,R.drawable.huoxing};
String[] titleArr={"地球","金星","木星","土星","火星"};
String[] contentArr={"地球的介绍","金星的介绍","木星的介绍","土星的介绍","火星的介绍"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_simple_adapter);
//连接listView
listView=(ListView)findViewById(R.id.ListViewsimple);
//创建SimpleAdapter适配器
SimpleAdapter simpleAdapter=new SimpleAdapter(this,getData(),R.layout.layoutitem1,
new String[]{"img","name","content"},new int[]{R.id.image2,R.id.textTitle,R.id.textContent});
//为listview添加SimpleAdapter适配器
listView.setAdapter(simpleAdapter);
}
private List extends Map> getData() {
List
activity_list_view_simple_adapter.xml
layoutitem1.xml
我们还可以使用setOnItemClickListener方法来对每一个列表项添加点击事件,在这里我就不详细讲解了
我将在下一篇博客中展示自定义适配器的使用方法
小白在线欢迎指点。