Adapter是个什么角色呢?其实它的作用就是View界面和数据之间的桥梁。我们可以看作是界面数据绑定的一种理解,它所操纵的数据一般都是一些比较复杂的数据,如数组,链表,数据库,集合等。
常用的适配器有:
(1)ArrayAdapter; 数组作为数据源,填充的是ArrayAdapter
(2)SimpleAdapter; List作为数据源,填充的是SimpleAdapter
(3)SimpleCursorAdapter; 数据来源一般都是数据库查询得到的Cursor
(4)自定义适配器; 为什么要定义自己的适配器呢?原因就在于,当我们想用一些其它的展现方式,或者是我们需要的,呈现方式,这是就得DIY了。首先我们定义一个类让它继承自BaseAdapter,再让它实现一里面所说的那几个方法。那么这个自定义适配器就算好了。
下面我们看个实例就明白了:
一 .ArrayAdapter
1.xml代码:
1 26 7 11 12
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 ArrayListmArrayList = null;12 13 @Override14 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 (this,19 android.R.layout.simple_expandable_list_item_1, getData()));20 }21 22 private ArrayList getData() {23 mArrayList = new ArrayList ();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 26 7 30 3112 13 17 18 23 24 29
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 @Override13 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
3.效果图:
由于写在一个页面感觉太长了,所以下一篇继续总结SimpleCursorAdapter和自定义适配器~~~~~~~~~