SimpleAdapter 是 Android 提供的一个适配器,它用于将数据源与布局文件进行绑定,然后显示在 ListView 或 GridView 等控件上。SimpleAdapter 的使用简单方便,适合于简单的列表显示场景。下面将详细介绍 SimpleAdapter 的使用方法,并给出一些示例。
1. SimpleAdapter 的构造方法
SimpleAdapter 的构造方法有多个重载参数,在实例化 SimpleAdapter 对象时,需要传入如下参数:
1.1 Context:上下文对象,一般为当前 Activity 的实例。
1.2 List extends=""?><>
?>>:数据源,通常是一个 Map 集合的列表,每个 Map 对象表示一条数据,其中 String 表示键值对的键,? 表示值的类型。
1.3 int:布局文件的资源 ID,用来定义每个列表项的布局。
1.4 String[]:从数据源的哪些键中取值。
1.5 int[]:将值设置到布局文件的哪些控件中。
2. SimpleAdapter 的使用
2.1 准备数据源
首先需要准备一个数据源,通常是一个 List<><>
Object>> 对象,每个 Map 对象表示一条数据,其中 String 表示键值对的键,Object 表示值的类型。
```java
List<><>
Object>> data = new ArrayList<>();
Map<>
Object> item = new HashMap<>();
item.put("name"
"张三");
item.put("age"
20);
data.add(item);
```
2.2 准备布局文件
然后需要准备一个布局文件,用于定义列表项的样式。可以使用系统提供的默认的布局文件 android.R.layout.simple_list_item_1;也可以自定义一个布局文件,例如 list_item.xml。
```xml
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<>
android:id="@+id/text_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<>
android:id="@+id/text_age"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
```
2.3 创建 SimpleAdapter 对象
接下来创建一个 SimpleAdapter 对象,并将数据源和布局文件资源 ID 传入。
```java
SimpleAdapter adapter = new SimpleAdapter(this
data
R.layout.list_item
new String[]{"name"
"age"}
new int[]{R.id.text_name
R.id.text_age});
```
2.4 显示数据
*将创建的 SimpleAdapter 对象设置到 ListView 或 GridView 控件上,以显示数据。
```java
ListView listView = findViewById(R.id.list_view);
listView.setAdapter(adapter);
```
3. SimpleAdapter 的常用方法
SimpleAdapter 提供了一些常用的方法,用于对列表项进行操作,例如添加、修改、删除等。
3.1 添加数据
可以通过调用 SimpleAdapter 的 addData() 方法添加新的数据项。
```java
Map<>
Object> newItem = new HashMap<>();
newItem.put("name"
"李四");
newItem.put("age"
25);
adapter.addData(newItem);
```
3.2 修改数据
可以通过修改数据源中的 Map 对象来修改数据项。
```java
Map<>
Object> item = data.get(position);
item.put("name"
"王五");
item.put("age"
30);
```
然后调用 SimpleAdapter 的 notifyDataSetChanged() 方法刷新列表。
```java
adapter.notifyDataSetChanged();
```
3.3 删除数据
可以通过调用 SimpleAdapter 的 removeData() 方法删除指定位置的数据项。
```java
adapter.removeData(position);
```
然后调用 SimpleAdapter 的 notifyDataSetChanged() 方法刷新列表。
```java
adapter.notifyDataSetChanged();
```
以上就是 SimpleAdapter 的基本用法和一些常用方法。SimpleAdapter 简单易用,适合于一些简单的列表显示场景。在实际开发中,可以根据具体需求进行扩展和定制,来满足更复杂的列表显示需求。
咨询微信客服
0516-6662 4183
立即获取方案或咨询top