24,arrayadapter与simplecursoradapteradapter有什么区别

& & & & & private SimpleA & & & & & & & & & & & & //private ArrayAdapter&String&
private List&Map&String, Object&& dataL & //而普通数组适配器用的是
private List&String&
& & & & &dataList = new ArrayList&Map&String, Object&&(); & &&
& & & & &//而普通数组适配器用的是 &list=new ArrayList&String&();
& & & & &getData(); & & & & & & & & & & & & & & & & & & & & & //区别 & &调用获取数据的方法
& & & & &private void getData() { & & &&
// TODO Auto-generated method stub
Map&String, Object& map = new HashMap&String, Object&();
map.put(&image&, R.drawable.ic_launcher);
map.put(&text&, &北京&);
& & & & & & & & dataLlist.put(map);
& & & & &adapter=new SimpleAdapter(this, dataList, R.layout.item, new String[]{&image&,&text&},
new int[]{R.id.image,R.id.text}); &//样式item,数据存储方式,存储对应的id号
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
排名:千里之外1144人阅读
android(90)
数据源不同而已
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&&
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);
//==============================SimpleCursorAdapter===================
注意:SimpleCursorAdapter是和数据库有关的东西,而sqlite数据库所要求的 自动增长的 id& 必须是 _id这中形式
public class List2 extends Activity {
private ListView listV
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,
new String[] {People.NAME} ,
new int[] {android.R.id.text1});
listView.setAdapter(adapter);
setContentView(listView);
//====================ArrayAdapter===================================
public class List1 extends& Activity {
private ListVeiw listV
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”};
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:305810次
积分:4026
积分:4026
排名:第6026名
原创:90篇
转载:21篇
评论:162条
(1)(2)(3)(1)(1)(1)(1)(2)(1)(1)(1)(1)(4)(5)(18)(11)(28)(24)(7)您所在的位置: &
5.5.2 使用SimpleAdapter(1)
5.5.2 使用SimpleAdapter(1)
电子工业出版社
《Android江湖》第5章系出名门,在本章内容中讲解了Android中基本控件的基本使用知识。首先介绍了UI等常用布局控件的基本知识和用法,然后详细讲解了友好界面控件和列表控件的的基本知识,最后讲解了Intent、Activity、Toast和Notification控件的基本知识。本节为大家介绍使用SimpleAdapter。
5.5.2 使用SimpleAdapter(1)
练习9:练习使用SimpleAdapter实现ListView
源码路径:“第5章\my_list”文件夹
(1)构建一个list对象,并设置每项有一个map图片,然后创建TestList类继承Activity。具体代码如下所示:super.onCreate(savedInstanceState); &setContentView(R.layout.main); &ArrayList,&Object&users&=&new&ArrayList&,Object(); &for&(int&i&=&0;&i&&;&i++)&{ &HashMap,&Object&user&=&new&HashMap,&Object(); &user.put("img",&R.drawable.user); &user.put("username",&"名字("&+&i+")"); &user.put("age",&(11&+&i)&+&""); &users.add(user); &} &SimpleAdapter&saImageItems&=&new&SimpleAdapter(this, &users,//&数据来源 &R.layout.user,//每一个user&xml&相当ListView的一个组件 &new&String[]&{&"img",&"username",&"age"&}, &//&分别对应view&的id &new&int[]&{&R.id.img,&R.id.name,&R.id.age&}); &//&获取listview &((ListView)&findViewById(R.id.users)).setAdapter(saImageItems);&
(2)编写文件main.xml实现布局,插入3个TextView,具体代码如下所示:&version="1.0"&encoding="utf-8"&&xmlns:Android="/apk/res/Android"&Android:orientation="vertical"&Android:layout_width="fill_parent"&Android:layout_height="fill_parent"&&Android:text="强大的用户列表"&Android:gravity="center"&Android:layout_height="wrap_content"&Android:layout_width="fill_parent"&Android:background="#DAA520"&Android:textColor="#000000"&&&Android:layout_width="wrap_content"&Android:layout_height="wrap_content"&&Android:text="姓名"&Android:gravity="center"&Android:layout_width="160px"&Android:layout_height="wrap_content"&Android:textStyle="bold"&Android:background="#7CFC00"&&&Android:text="年龄"&Android:layout_width="170px"&Android:gravity="center"&Android:layout_height="wrap_content"&Android:textStyle="bold"&Android:background="#F0E68C"&&&&Android:layout_width="wrap_content"&Android:layout_height="wrap_content"&Android:id="@+id/users"&&&
【责任编辑: TEL:(010)】&&&&&&
关于&&的更多文章
本书以Android 4.X进行开发示范,通过大量图示与step by step方
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
产品经理发展到一定阶段,再要成长,光靠学习一些知识
本教材以面向应用型人才培养为目标;以非传统的组织结
高效管理SQL Server的提示、技巧和解决方案
本书深入浅出地阐述了计算机网络技术的基本原理,介绍了当前常用的先进网络技术以及网络的实际应用知识。全书主要内容包括计算机
51CTO旗下网站Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段
Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段
收藏ArrayAdapter、SimpleAdapter和BaseAdapter的一些简短代码片段,希望用时方便想起其用法。
1.ArrayAdapter
只可以简单的显示一行文本
代码片段:
[java] ArrayAdapter&String&&adapter&=&new&ArrayAdapter&String&(&&&&&&&&&&&&&&&&&&this,&&&&&&&&&&&&&&&&&&R.layout.item,//只能有一个定义了id的TextView&&&&&&&&&&&&&&&&&&data);//data既可以是数组,也可以是List集合&&
2.SimpleAdapter
可以显示比较复杂的列表,包括每行显示图片、文字等,但不能对列表进行后期加工(在java代码中加工),
也是只是单纯的负责显示(当然可以设计复杂点的布局来显示复杂列表),例如,每行显示不同背景等。
代码片段:
[java] List&Map&String,Object&&&mData=&new&ArrayList&Map&String,Object&&();;&&for(int&i&=0;&i&&&&i++)&{&&&&&&&&&&Map&String,Object&&item&=&new&HashMap&String,Object&();&&&&&&&&&&item.put("image",&R.drawable.portrait);&&&&&&&&&&item.put("title",&mListTitle[i]);&&&&&&&&&&item.put("text",&mListStr[i]);&&&&&&&&&&mData.add(item);&&&&&&&}&&&&&&SimpleAdapter&adapter&=&new&SimpleAdapter(&&&&&&&&&&&&&&&&&&this,&&&&&&&&&&&&&&&&&&mData,&&&&&&&&&&&&&&&&&&R.layout.item,&&&&&&&&&&&&&&&&&&&&&&new&String[]{"image","title","text"},&&&&&&&&&&&&&&&&&&new&int[]{R.id.image,R.id.title,R.id.text});&&&&&
3.BaseAdapter
可以实现复杂的列表布局,由于BaseAdapter是一个抽象类,使用该类需要自己写一个适配器继承该类,
正是由于继承了该类,需要我们重写一些方法,让我们可以在代码里控制列表的样式,更加灵活。
代码片段:
[java] private&class&MyListAdapter&extends&BaseAdapter{&&&&&&&&&&&&private&Context&mC&&&&&&&&&&&&private&int[]&colors=new&int[]{0xffxff4f5257&};&&&&&&&&&&&&&public&MyListAdapter(Context&context){&&&&&&&&&&&&&&&&&mContext=&&&&&&&&&&&&&}&&&&&&&&&&&&@Override&&&&&&&&&&&&public&int&getCount()&{&&&&&&&&&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&&&&&&&&&return&mListText.&&&&&&&&&&&&}&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&public&Object&getItem(int&position)&{&&&&&&&&&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&&&&&&&&&return&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&public&long&getItemId(int&position)&{&&&&&&&&&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&&&&&&&&&return&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&public&View&getView(int&position,&View&convertView,&ViewGroup&parent)&{&&&&&&&&&&&&&&&&ImageView&image=&&//这些控件可以单独封装成一个类(Holder),便与优化&&&&&&&&&&&&&&TextView&title=&&&&&&&&&&&&&&&&TextView&&content=&&&&&&&&&&&&&&&&if(convertView==null){&&&&&&&&&&&&&&&&&&&&convertView=LayoutInflater.from(mContext).inflate(R.layout.colorlist,&null);&&&&&&&&&&&&&&&&&&&&image=(ImageView)&convertView.findViewById(R.id.color_image);&&&&&&&&&&&&&&&&&&&&title=(TextView)&convertView.findViewById(R.id.color_title);&&&&&&&&&&&&&&&&&&&&content=(TextView)&convertView.findViewById(R.id.color_text);&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&int&colorPos=position%colors.&&&&&&&&&&&&&&&&convertView.setBackgroundColor(colors[colorPos]);&&&&&&&&&&&&&&&&title.setText(mListTitle[position]);&&&&&&&&&&&&&&&&content.setText(mListText[position]);&&&&&&&&&&&&&&&&image.setImageResource(R.drawable.portrait);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&return&convertV&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&}&&&&&&--------------------------下面样例列表页的控件单独封装成了一个类(Holder),便与优化-----&&&&&&&public&class&MyBaseAdapter&extends&BaseAdapter{&&&&&&&&&&&&&&&&&&&&private&LayoutInflater&mI&&&&&&&&&&&&&&public&MyAdapter(Context&context){&&&&&&&&&&&&&&&&&this.mInflater&=&LayoutInflater.from(context);&&&&&&&&&&&&}&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&public&int&getCount()&{&&&&&&&&&&&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&&&&&&&&&&&return&mData.size();&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&&public&Object&getItem(int&arg0)&{&&&&&&&&&&&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&&&&&&&&&&&return&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&&public&long&getItemId(int&arg0)&{&&&&&&&&&&&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&&&&&&&&&&&return&0;&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&&public&View&getView(int&position,&View&convertView,&ViewGroup&parent)&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ViewHolder&holder&=&&&&&&&&&&&&&&&&&&&if&(convertView&==&null)&{&&&&&&&&&&&&&&&&&&&&&&holder=new&ViewHolder();&&&&&&&&&&&&&&&&&&&&&&&convertView&=&mInflater.inflate(R.layout.vlist2,&null);&&&&&&&&&&&&&&&&&&&&&&holder.img&=&(ImageView)convertView.findViewById(R.id.img);&&&&&&&&&&&&&&&&&&&&&&holder.title&=&(TextView)convertView.findViewById(R.id.title);&&&&&&&&&&&&&&&&&&&&&&&=&(TextView)convertView.findViewById();&&&&&&&&&&&&&&&&&&&&&&holder.viewBtn&=&(Button)convertView.findViewById(R.id.view_btn);&&&&&&&&&&&&&&&&&&&&&&convertView.setTag(holder);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}else&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&holder&=&(ViewHolder)convertView.getTag();&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));&&&&&&&&&&&&&&&&&&holder.title.setText((String)mData.get(position).get("title"));&&&&&&&&&&&&&&&&&&.setText((String)mData.get(position).get("info"));&&&&&&&&&&&&&&&&&&//给每一个列表后面的按钮添加响应事件&&&&&&&&&&&&&&&&&&holder.viewBtn.setOnClickListener(new&View.OnClickListener()&{&&&&&&&&&&&&&&&&&&&&&&@Override&&&&&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{&&&&&&&&&&&&&&&&&&&&&&&&&&showInfo();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&});&&&&&&&&&&&&&&&&&&&&return&convertV&&&&&&&&&&&&&&}&&&&&&&&&&------------&&&&&&&&&&public&final&class&ViewHolder{&&&&&&&&&&&&&&public&ImageView&&&&&&&&&&&&&&&public&TextView&&&&&&&&&&&&&&&public&TextView&&&&&&&&&&&&&&&public&Button&viewB&&&&&&&&&&}&&
发表评论:
TA的最新馆藏[转]&(点击上方公众号,可快速关注)来源:To_be_Designer链接:http://blog.csdn.net/to_be_designer/article/details/本系列:SimpleAdapterSimpleAdapter也是Android自己提供的一个Adapter适配器,它与ArrayAdapter不同的是ArrayAdapter需要使用Android自己定义的view布局文件,而SimpleAdapter则可以使用我们自己定义的布局文件。要学习SimpleAdapter的使用首先然我们看一下SimpleAdapter的构造器:从图片中我们可以看出,SimpleAdapter只有一个构造器:第一个参数Context context是指当前的Activity,我们传入this即可。第二个参数List&? extends Map&String, ?&&是指传入的数据类型必须是List集合,集合存放的数据类型必须是Map。第三个参数int resource是指View的布局文件。也就是用来显示数据的View。第四个参数 String[] from数据是以Map类型存放在List集合中的,from参数是指存放在List中每条Map数据的键值集合。第五个参数int[] to是指将每条Map类型的数据中的不同键值对应到不同的得布局控件中。介绍完构造器的参数,大家可能还是不太懂到底是应该如何使用,没关系,我们通过例子来说明使用。SimpleAdapter的使用One.定义一个ListView的布局文件。&LinearLayout xmlns:android=&/apk/res/android&
android:layout_width=&match_parent&
android:layout_height=&match_parent&&
android:id=&@+id/listview_array&
android:layout_width=&match_parent&
android:layout_height=&wrap_content&
android:cacheColorHint=&#&
android:divider=&#f00000&
android:dividerHeight=&2dp&&
&/ListView& &/LinearLayout&Two.书写一个View的布局文件,将数据以该View的形式存放在ListView中。&?xml version=&1.0& encoding=&utf-8&?&&LinearLayout xmlns:android=&/apk/res/android&
android:orientation=&horizontal&
android:layout_width=&match_parent&
android:layout_height=&match_parent&
android:layout_margin=&20dp&
android:gravity=&center|left&
android:background=&@drawable/item_background&&
&ImageView
android:id=&@+id/image_photo&
android:layout_width=&70dp&
android:layout_height=&70dp& /&
android:id=&@+id/textview_name&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&姓名&
android:textStyle=&bold&
android:textColor=&#0e99ff&
android:textSize=&20sp& /&
&LinearLayout
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:orientation=&vertical&
android:layout_marginRight=&15dp&
android:layout_marginLeft=&15dp&&
android:id=&@+id/textview_age&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&性别&
android:textStyle=&bold&
android:textColor=&#009900&
android:textSize=&15sp&/&
android:id=&@+id/textview_sex&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&年龄&
android:textStyle=&bold&
android:textColor=&#ff99ff&
android:textSize=&15sp& /&
&/LinearLayout&
android:id=&@+id/textview_hobby&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&爱好&
android:textStyle=&bold&
android:textColor=&#55eedd&
android:textSize=&20sp& /&&/LinearLayout&Three.创建数据。创建List的集合存放Map类型的数据,并对其进行初始化。(这些直接在Activity中定义)public HashMap&String, String&
createHashMap(String name, String age, String sex, String<span class="crayon-h" style="border: 0 margin: 0 padding: 0 font-family: inher安卓应用频道(androidpd) 
 文章为作者独立观点,不代表大不六文章网立场
androidpd分享安卓应用相关内容,包括:安卓应用开发、设计和推广。热门文章最新文章androidpd分享安卓应用相关内容,包括:安卓应用开发、设计和推广。&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78

我要回帖

更多关于 重写simpleadapter 的文章

 

随机推荐