[Android]ArrayAdapter ,SimpleAdapter ,SimpleCursorAdapter 区别
2015-07-08 11:30
471 查看
数据源不同而已
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().q
b027
uery(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. 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().q
b027
uery(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"};
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories