一、再脑补一下,数据块:负责具体的逻辑和数据内容代码;视图块:负责具体的展示形式,即长什么样子;适配器块:负责把数据内容以何种姿势显示到视图上。
二、使用SimpleAdapter实现简单的图文混搭列表
1.在布局文件中编写代码
第一步:添加ListView标签(listview.xml)
第二步:编写行布局文件(item.xml)
2.在Activity中编写代码
第一步:获取ListView对象
第二步:准备数据源(List
3.代码块
<!--1、listview.xml代码-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_play"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<!--2、item.xml代码-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_play"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
//MainActivity.java代码
package com.oldtogether.adapterdemo2;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends ActionBarActivity {
// 创建数组,采用for循环进行遍历
private int[] imageIds = new int[] { R.drawable.daxiang, R.drawable.maozi, R.drawable.nangua, R.drawable.nanguobq,
R.drawable.tiaopi, R.drawable.xiaolian, R.drawable.xin,R.drawable.weixin,R.drawable.hongx,R.drawable.xm };
private String[] titles = new String[] { "卖萌大象", "圣诞帽子", "愤怒南瓜", "难过表情", "调皮表情", "我倩的笑脸表情", "oldtogether爱心","微信","粉色少女心","一代撸" };
private String[] versions = new String[] { "版本:1.10", "版本:2.10", "版本:1.11", "版本:2.12", "版本:3.10", "版本:2.20","版本:5.20","版本:1.23","版本:2.21","版本:2.40", };
private String[] sizes = new String[] { "大小:32.01M", "大小:32.02M", "大小:23.01M", "大小:11.01M", "大小:41.01M","大小:11.01M","大小:33.01M","大小:33.01M","大小:33.01M","大小:33.01M",};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
// 1、过的ListView对象
ListView lv = (ListView) findViewById(R.id.lv_play);
// 2、数据源
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < titles.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("logo", imageIds[i]);
map.put("title", titles[i]);
map.put("version", versions[i]);
map.put("size", sizes[i]);
list.add(map);
}
// 3、设置适配器
SimpleAdapter adapter = new SimpleAdapter(this, // context上下文
list, // 数据源
R.layout.item, // 自定义的行布局
new String[] { "logo", "title", "version", "size" }, // 数据的来源,即key值
new int[] { R.id.iv_logo, R.id.title, R.id.version, R.id.size });// 与key值关联,根据id获得具体的资源
// 4、关联适配器
lv.setAdapter(adapter);
}
}
4.运行结果