Android适配器教程(⼀)
最近在开发安卓的过程中发现ListView⽆疑是⼀个经常使⽤的组件,⽽提到ListView⼜不得不提⼀下适配器了,我打算⽤⼏个实例,由浅⼊深的向⼤家仔细讲解⼀下适配器的使⽤,虽然这算不上什么⾼深的问题,我还是希望能给⼤家带来⼀些收获,我也是菜鸟⼀只,写的不好的或者有错的地⽅还请⼤家帮忙指出。下⾯进⼊正⽂:
⾸先让我们来认识⼀下适配器:
什么是适配器呢?顾名思义,就是把⼀些数据给弄得适当,适合以便于在View上显⽰。适配器就像显⽰器,把复杂的东西按⼈可以接受的⽅式来展现。也可以这样来理解适配器,ListView通过适配器,理解我们要对ListView⾥加⼊什么内容,⽽我们在适配器⾥@Override的⽅法,就是让我们写上我们要告诉这个ListView的⼀些基本内容。
可以说适配器就是数据和视图之间的桥梁,学好适配器还是⾮常重要的。
让我们先从各个⽅⾯理解适配器,然后看⼀些例⼦我想应该就可以彻底掌握它了!
适配器的⼯作原理:
适配器是怎么处理得到的数据,并把它显⽰出来的呢?其实很简单,说⽩了适配器它也是⼀个类,在类⾥⾯它实 现了⽗类的这⼏个⽅法:
public int getCount() //得到数据的⾏数
public Object getItem(int position) //根据position得到某⼀⾏的记录
public long getItemId(intposition) //的到某⼀条记录的ID
还有最重要的:
publicView getView(intposition, View convertView, ViewGroup parent)
//相⽐于其它⼏个⽅法这个⽅法是最重要的,它显式的定义了适配器将要以什么样的⽅式去显⽰我们所 填充的数据,在⾃定义的适配器⾥⾯我们通常会给它写个布局⽂件。
这些在最后的⼀两个例⼦⾥会仔细讲解,我们从简单的看起:⾸先看看常⽤的适配器
我们常⽤的适配器⼀共有三个,当然不包含⾃定义的适配器:就是
ArrayAdapter,SimpleAdapter,SimpleCursorAdapter 这三个,他们都是继承于BaseAdapter 。
下⾯我会逐⼀介绍,我们在具体应⽤中来继续学习Adapter:
说道Adapter不得不说道ListView,或者说⽤到ListView不得不提到Adapter
在android开发中ListView是⽐较常⽤的组件,它以列表的形式展⽰具体内容,并且能够根据数据的长度⾃适应显⽰。
⽽列表的显⽰需要三个元素:
1.ListVeiw ⽤来展⽰列表的View。
2.适配器 ⽤来把数据映射到ListView上的中介。
3.数据 具体的将被映射的字符串,图⽚,或者基本组件。
根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter
其中以ArrayAdapter最为简单,只能展⽰⼀⾏字。SimpleAdapter有最好的扩充性,可以⾃定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以⽅⾯的把数据库的内容以列表的形式展⽰出来
我们从最简单的ListView开始(ArrayAdapter):
我打算把这⼏种适配器的例⼦放在⼀个app⾥⾯,然后上传到我的资源,再分享链接给⼤家。所以我打算由MainActivity⾥的Button来跳转到各个例⼦,现在让我们⼀步步的把这个Demo写出来。
项⽬开始啦!
(1)⾸先,新建⼀个app ,名字叫做 AdapterDemo ,先在l⾥添加⼀个button,⼀会跳转的时候使⽤。
(2)然后新建⼀个类ArrayAdapterDemo继承⾃Activity作为我们第⼀个⼩例⼦的Activity,@Override 我们
的onCreate⽅法
新建⼀个xml⽂件l作为我们的布局⽂件,其中包含⼀个⽂本域和⼀个ListView,代码如下:l:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是ArrayAdapter的⼀个例⼦" >
</TextView>
<ListView
android:id="@+id/arrayadapterdemolistview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
(3)然后回到ArrayAdapterDemo,定义⼀个Listview暂且叫做lv,并且lv=(ListView)findViewById(R.id.arrayadapterdemolistview);
,setContentView()为刚才的xml布局,然后为lv设置⼀个适配器,这⾥使⽤的是安卓原⽣的( context, inttextViewResourceId, <T> objects)来装配数据,要装配这些数据就需要⼀个连接ListView视图对象和数组数据的适配器 来两者的适配⼯作。
的构造需要三个参数,依次为:this,布局⽂件(注意这⾥的布局⽂件描述的是列表的每⼀⾏的布局, android.R.layout.simple_list_item_1是系统定义好的布局⽂件只显⽰⼀⾏⽂字,数据源(⼀个List集合)。同时⽤setAdapter()完 成适配的最后⼯作。
⼀般写⼀个getData()⽅法来作为最后⼀个参数,最终代码如下:
ample.adapterdemo;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ArrayAdapterDemo extends Activity {
android学习教程private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.arrayadapterdemo);
lv=(ListView)findViewById(R.id.arrayadapterdemolistview);
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, getData()));
}
public List<String> getData(){
List<String> data = new ArrayList<String>();
data.add("测试数据1");
data.add("测试数据2");
data.add("测试数据3");
data.add("测试数据4");
return data;
}
}
再在l中注册Activity并在主界⾯中完成button监听跳转就可以了。
下⾯是实现结果:
教程⼀就先到此结束啦!⼀下⼦写在⼀篇⾥⾯篇幅太长,⼤家也不喜欢看。
下次讲解的是:
SimpleCursorAdapter在ListView中显⽰⼿机联系⼈列表。
请⼤家继续关注!
源码我会在最后⼀篇结束的时候发上来,我也是边写博客边写的代码,我觉得这样可能讲的思路更清晰⼀些。我也是学⽣,⽔平有限,还请多多指教!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论