Adapter是个什么角色呢?其实它的作用就是View界面和数据之间的桥梁。我们可以看作是界面数据绑定的一种理解,它所操纵的数据一般都是一些比较复杂的数据,如数组,链表,数据库,集合等。
常用的适配器有:
(1)ArrayAdapter; 数组作为数据源,填充的是ArrayAdapter
(2)SimpleAdapter; List作为数据源,填充的是SimpleAdapter
(3)SimpleCursorAdapter; 数据来源一般都是数据库查询得到的Cursor
(4)自定义适配器; 为什么要定义自己的适配器呢?原因就在于,当我们想用一些其它的展现方式,或者是我们需要的,呈现方式,这是就得DIY了。首先我们定义一个类让它继承自BaseAdapter,再让它实现一里面所说的那几个方法。那么这个自定义适配器就算好了。
下面我们看个实例就明白了:
一 .ArrayAdapter
1.xml代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical" > 6 7 <ListView 8 android:id="@+id/myArrayList" 9 android:layout_width="match_parent" 10 android:layout_height="wrap_content" /> 11 12 </LinearLayout>
2.java代码:
1 package com.example.arrayadapter;
2
3 import java.util.ArrayList;
4 import android.app.Activity;
5 import android.os.Bundle;
6 import android.widget.ArrayAdapter;
7 import android.widget.ListView;
8
9 public class MainActivity extends Activity {
10 private ListView mListView;
11 private ArrayList<String> mArrayList = null;
12
13 @Override
14 protected void onCreate(Bundle savedInstanceState) {
15 super.onCreate(savedInstanceState);
16 setContentView(R.layout.activity_main);
17 mListView = (ListView) findViewById(R.id.myArrayList);
18 mListView.setAdapter(new ArrayAdapter<String>(this,
19 android.R.layout.simple_expandable_list_item_1, getData()));
20 }
21
22 private ArrayList<String> getData() {
23 mArrayList = new ArrayList<String>();
24 mArrayList.add("item1");
25 mArrayList.add("item2");
26 mArrayList.add("item3");
27 mArrayList.add("item4");
28 mArrayList.add("item5");
29 mArrayList.add("item6");
30 mArrayList.add("item7");
31 mArrayList.add("item8");
32 mArrayList.add("item9");
33 mArrayList.add("item10");
34 return mArrayList;
35 }
36 }
3.效果图:

二.SimpleAdapter
simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)等等。下面的代码都直接继承了ListActivity,ListActivity和普通的Activity没有太大的差别,不同就是对显示ListView做了许多优化,方面显示而已。
1.XML代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="horizontal" > 6 7 <ImageView 8 android:id="@+id/img" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:layout_margin="5px" /> 12 13 <LinearLayout 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:orientation="vertical" > 17 18 <TextView 19 android:id="@+id/title" 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:textSize="30px" /> 23 24 <TextView 25 android:id="@+id/content" 26 android:layout_width="wrap_content" 27 android:layout_height="wrap_content" 28 android:textSize="20px" /> 29 </LinearLayout> 30 31 </LinearLayout>
2.java代码:
1 package com.example.simpleadapter;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7 import android.app.ListActivity;
8 import android.os.Bundle;
9 import android.widget.SimpleAdapter;
10
11 public class MainActivity extends ListActivity {
12 @Override
13 public void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 SimpleAdapter adapter = new SimpleAdapter(this, getData(),
16 R.layout.simple, new String[] { "title", "content", "img" },
17 new int[] { R.id.title, R.id.content, R.id.img });
18 setListAdapter(adapter);
19 }
20
21 private List<Map<String, Object>> getData() {
22 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
23 Map<String, Object> map = new HashMap<String, Object>();
24 map.put("title", "SimpleAdapter");
25 map.put("content",
26 "SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法");
27 map.put("img", R.drawable.m4);
28 list.add(map);
29
30 map = new HashMap<String, Object>();
31 map.put("title", "SimpleAdapter");
32 map.put("content",
33 "SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法");
34 map.put("img", R.drawable.m4);
35 list.add(map);
36
37 map = new HashMap<String, Object>();
38 map.put("title", "SimpleAdapter");
39 map.put("content",
40 "SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法");
41 map.put("img", R.drawable.m4);
42 list.add(map);
43
44 map = new HashMap<String, Object>();
45 map.put("title", "SimpleAdapter");
46 map.put("content",
47 "SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法SimpleAdapter用法");
48 map.put("img", R.drawable.m4);
49 list.add(map);
50
51 return list;
52 }
53 }
3.效果图:
由于写在一个页面感觉太长了,所以下一篇继续总结SimpleCursorAdapter和自定义适配器~~~~~~~~~
来源:http://www.cnblogs.com/summers/p/4090031.html