1、MVC模式
在开始学习Adapter之前我们要来了解下这个MVC模式概念:举个例子:大型的商业程序通常由多人一同开发完成,比如有人负责操作接口的规划与设计, 有人负责程序代码的编写如果要能够做到程序项目的分工就必须在程序的结构上做适合的安排 ,如果,接口设计与修改都涉及到程序代码的改变的话,那么两者的分工就会造成执行上的困难 良好的程序架构师将整个程序项目划分为如图的三个部分:

1.1 关系图解析
- Model:通常可以理解为数据,负责执行程序的核心运算与判断逻辑,通过 view 获得用户输入的数据,然后根据从数据库查询相关的信息,最后进行运算和判断,再将得到的结果交给 view 来显示
- view:用户的操作接口,说白了就是 GUI,应该使用哪种接口组件,组件间的排列位置与顺序都需要设计
- Controller:控制器,作为 model 与 view 之间的枢纽,负责控制程序的执行流程以及对象之间的一个互动
- Model(数据源)---> Controller(Adaper)---> View(AdapterView)
2、AdapterView简介
- AdapterView即Adapter(适配器)控件,其内容通常是一个包含多项相同格式资源的列表,每次只显示其中的一项。这个存放Adapter控件内容的列表,在Android被称为AdapterView(适配器View)使用的时候一般都会先给适配器填充内容,然后将已经设定好内容的适配器(Adapter)设置到AdapterView上。
- 常用的AdapterView包含:ListView(列表)、Spinner(下拉列表)、GridView(网格网)、RecycleView
3、Adapter简介
- BaseAdapter:抽象类,实际开发中通常会继承这个类并且重写相关方法,用得最多的一个Adapter!
- ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字。
- SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果!
- SimpleCursorAdapter:用于显示简单文本类型的ListView,一般在数据库那里会用到,不过有点过时, 不推荐使用!
4、简单使用
- adapter_layout.xml
<?xml version="1.0" encoding="utf-8"?><ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">ListView>
- AdapterActivity.java
public class AdapterActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.adapter_layout); // AdapterView - V ListView listView = (ListView)findViewById(R.id.listview); // 数据源 - M String[] strs = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; // 控制器 - C ArrayAdapter<String> adapter = new ArrayAdapter<String>( this,android.R.layout.simple_expandable_list_item_1,strs ); // 为ListView设置Adapter适配器 listView.setAdapter(adapter); }}