adapter充电器(adapter)
Adapter是什么?(适配器)
Adapter本身只是一个接口,它派生了ListAdapter、SpinnerAdapter两个子接口。ListAdapter为AbsListView提供列表项、SpinnerAdapter为AbsSpinnerAdapter提供列表项。几乎所有的Adapter都继承了BaseAdapter,而BaseAdapter同时实现了ListAdapter和SpinnerAdapter两个接口,因此BSEAdapter及其子类可以同时为ABSListView和AbsSpinner提供列表项。
Adapter常用的实现类如下:
ArrayAdapter:简单、易用的Adapter,常用于将数组或者list集合的多个值包装成多个列表项。
SimpleAdapter:功能强大,用于将 list集合的多个对象包装成多个列表项
SimpleCursorAdapter:与SimpleAdapter基本相似,只能用于包装Cursor提供的数据。
BaseAdapter:通常用于被扩展,扩展BaseAdapter可以对各项列表项进行最大限度的定制
Adapter为什么(要用它)?
Android是完全遵循MVC模式设计的框架,Activity是Controller,layout是View。因为layout有数种布局,很多数据不能直接绑定上去,因此Android引入了Adapter机制,作为复杂数据的展示的转换载体,各种Adapter只是转换的方式和能力不一样。
Adapter常用来管理数据,使数据绑定到控件变得更简单灵活(比如列表的数据,网格的数据),为容器提供子视图,利用视图的数据和元数据来构建每个子视图。
(思路)比如这样bear调用了monkey的方法a但是a方法的参数改了,这样bear的代码也得改;在中间加一个adapter,叫abc这样bear调用abc,abc调用monkey;当monkey的a方法发生改变时,不用改bear,改abc就可以了。这样可以保证变化性集中到abc
Adapter怎么用?
(思路)基础的adapter用法比较简单,常见的情况是在基础的adapter上继承写一个新的,然后加入自己需要的功能,譬如列表项要是带图片带勾选按钮的,还要能对点击下拉等等。
使用ArrayAdapter创建ListView
在layout布局文件下的main.xml
<?xmlversion=”1.0”encoding=”utf-8”?>
<LinearLayoutxmlns:android=http://shema.android.com/apk/res/android
Android:orientation=”vertical”
Android:layout_width=”match_parent”
Android:layout_height=”match_parent”/>
<!—设置红色的分隔条-->
<ListView
Android:id=”@+id/list”
Android:layout_width=”match_parent”
Android:layout_height=”wrap_content”
Android:divider=”#0ff” //分隔条,可用颜色,或者drawable分开
Android:dividerHeight=”2px”
Android:headerDividersEnabled=”false”/>//不在headerView之后绘制分隔条
</LinearLayout>
Activity为ListView提供Adapter,Adapter决定ListView显示的列表项
PublicclassArrayAdapterTestextendsActivity{
@Override
ProtectedvoidonCreate(BundlesavedInstanceState){
Super.onCreate(savedInstanceState);
setContentView(R.layou.main);
LinstViewlist=(ListView)findViewById(R.id.list);
//定义一个数组
String[]={“大圣归来”,”捉妖记”,”煎饼侠”,”栀子花开”};
//将数组包装成为ArrayAdapter
ArrayAdapter<String>adapter=newArrayAdapter<String>(this,R.layout.array_item,arr);
//为ListView设置Adapter
List.setAdapter(adapter)
}
}
上面的R.layout.array_item布局如下
<?xmlversion=”1.0”encoding=”utf-8”?>
<TextView
Xmlns:android=http://schemas.android.com/apk/res/android
Android:id=”@+id/TextView”
Android:layout_width=”match_parent”
Android:layout_height=”wrap_content”
Android:textSize=”24dp”
Android:padding=”10px”
Android:shadowColor=”#0f0”
Android:shadowDx=”4”
Android:shadowDy=”4”
Android:shadowRadius=”2”/>
以上就是adapter这篇文章的一些介绍,希望对大家有所帮助。