ArrayAdapter_SimpleAdapter_CursorAdapter的区别

数据源不同而已
1. String[]: ArrayAdapter
2. List<Map<String,?>>: SimpleAdapter
3. 数据库Cursor: SimpleCursorAdapter

使用ArrayAdapter(数组适配器)顾名思义,需要把数据放入一个数组以便显示。
android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字

SimpleAdapter能定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)

//=============================SimpleAdapter==========================

public class List3 extends ListActivity {

List<Map<String, Object>> list;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

list = getListForSimpleAdapter(); //list为数据集合

SimpleAdapter adapter = new SimpleAdapter(this, list,
R.layout.item,
new String[] { "BigText", "LittleText", "img" },
new int[] { R.id.BigText,R.id.LittleText, R.id.img });

//可以想成把一个放好数据的布局文件放入本界面中
setListAdapter(adapter);

}

private List<Map<String, Object>> getListForSimpleAdapter() {
List<Map<String,Object>> list=newArrayList<Map<String, Object>>(3);
Map<String, Object> map = new HashMap<String, Object>();
map.put("BigText", "Android");
map.put("LittleText", "Google phone.");
map.put("img", R.drawable.n);
list.add(map);

map = new HashMap<String, Object>();
map.put("BigText", "Lenovo");
map.put("LittleText", "Ophone");
map.put("img", R.drawable.o);
list.add(map);

map = new HashMap<String, Object>();
map.put("BigText", "Droid");
map.put("LittleText", "Motorola");
map.put("img", R.drawable.droid);
list.add(map);


return list;
}
}

//==============================SimpleCursorAdapter===================

注意:SimpleCursorAdapter是和数据库有关的东西,而sqlite数据库所要求的 自动增长的 id 必须是 _id这中形式

public class List2 extends Activity {

private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

listView=new ListView(this);
Cursorc=getContentResolver().query(People.CONTENT_URI,
null, null, null, null);
startManagingCursor(c);

ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
c,
new String[] {People.NAME} ,
new int[] {android.R.id.text1});
listView.setAdapter(adapter);
setContentView(listView);
}
}

//====================ArrayAdapter===================================

public class List1 extends Activity {

private ListVeiw listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

listView=new ListVeiw(this);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings));
setContentVieww(listView);
}

private String[] mStrings = {
"Abbaye de Belloc", "Abbaye du Mont des Cats",
"Acorn", "Adelost", "Affidelice au Chablis",
"Aisy Cendre", "Allgauer Emmentaler", "Alverca",
"Ami du Chambertin", "Anejo Enchilado", "Anneau
"Aragon", "Ardi Gasna", "Ardrahan", "Armenian
"Asadero", "Asiago", "Aubisque Pyrenees", "Autun",
"Babybel", "Baguette Laonnaise", "Bakers", "Bal"};
}

更多相关文章

  1. Android(安卓)高效的SQLite型数据库greenDAO使用
  2. Andrpid Activity作Dialog使用
  3. android遮罩层
  4. Android隐藏标题栏的四种方法
  5. Android适用于IM通知音频的Vibrator
  6. android 对软键盘的显示和消失监听
  7. android mms 数据库
  8. 数组资源(arrays)的使用
  9. Android之代码创建布局

随机推荐

  1. android实现对PDF进行签名、涂鸦操作
  2. Magisk与EdXposed框架安装实践(Android P
  3. 【Android(安卓)UI设计与开发】第06期:底
  4. Android一个工程引用另一个工程
  5. android读取apk中已经存在的数据库信息
  6. [Android基础系列]轻松实现按钮的鼠标悬
  7. Android周报:谷歌发布x86 64位Android(安
  8. 【Android软件】ES文件浏览器:Android资
  9. Android大厂面试题锦集(BAT TMD JD 小米)
  10. Android滤镜效果实现及原理分析