android Adapter剖析理解

  • UI控件都是跟Adapter(适配器)打交道的
  • Adapter: 是用来帮助控件填充数据的中间桥梁 (在开发中大多数Textview控件的内容是依靠数据库传递并显示的如:新闻类)
  • Adapter: 将各种数据以合适的形式显示到view上 (我是显示图片的控件,你给我传文字是不是不想好了,分手!)
  • Adapter: 需要结合ListView, GridView等等集合类控件 (List 在学习java集合时应该已经碰到过了,Gridview九宫格不多做解释在博客园搜索一下一大堆的讲解)

将一个App页面分三大块:UI控件(View), 数据模式(model), 控制器 (Controller )它是Adapter的大哥。

  • Model:负责执行程序的核心运算与判断逻辑,通过view获得用户 输入的数据,然后根据从数据库查询相关的信息,最后进行运算和判断,再将得到的结果交给view来显示 (勤恳的管理员负责仓库的查询与整理)
  • view:用户的操作接口,说白了就是GUI,应该使用哪种接口组件,组件间的排列位置与顺序都需要设计 (画家利用,画笔“接口比较抽象”可以理解为怎么使用画笔要在屏幕上显示就必须知道要在哪里下笔(坐标))
  • Controller:控制器,作为model与view之间的枢纽,负责控制程序的执行流程以及对象之间的一个互动 (model跟view冷战了要靠我这个“灯泡”(Controller)传话,而且必须安原话传递)

Model(数据) ---> Controller(以什么方式显示到)---> View(用户界面)

View(我要显示图片,文字) --->Controller(分析她到底要什么,哦要图片) --->Model(搜索一下对应的图片信息)

MVC模式图

Adapter亲属图(图片来源http://www.runoob.com/w3cnote/android-tutorial-adapter.html)我也是在他这里学习并自己做一个简化记录加一点主观想法在里面。

  • BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!
  • ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~      //现在的视频教学里都是用这个类在作教学(我看到的是这样)
  • SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果!可以放上ImageView(图片)等,可以显示比较复杂的列表,包括每行显示图片、文字等,但不能对列表进行后期加工(在java代码中加工),也是只是单纯的负责显示
  • SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,不过有点过时, 不推荐使用!
  • (该网站的作者这样说)其实一个BaseAdapter就够玩的了,至于其他的,实际开发中用得不多。“我是认同的”
时间: 2024-12-12 07:55:31

android Adapter剖析理解的相关文章

[转]Android Adapter以及getView()方法的理解

Android Adapter基本理解: 我的理解是: 1.一个有许多getter的类(就是getView(),getCount()....这些方法) 2.有多少个get方法?都是什么? 这些getter是特定的,你可以复写他们,全部的方法如下 其中一般我们只用复写getCount(),getView(),getItemId(),getItem()这四个方法 3.这些被谁调用? 这些getter是被android系统自行调用的(具体如何调用,作为像我这样的新手做稍微了解就好) 4.为什么要复写这

Android高手进阶——Adapter深入理解与优化

Android高手进阶--Adapter深入理解与优化 通常是针对包括多个元素的View,如ListView,GridView.ExpandableListview,的时候我们是给其设置一个Adapter.Adapter是与View之间提供数据的桥梁,也是提供每一个Item的视图桥梁.   以ListView为例.其工作原理为: ● ListView针对List中每一个item, adapter都会调用一个getView的方法获得布局视图 ●我们通常会Inflate一个新的View,填充数据并返

[项目总结]论Android Adapter notifyDataSetChanged与notifyDataSetInvalidated无效原因

最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因. 首先看一下notifyDataSetChanged与notifyDataSetInvalidated的区别 我们可应用粮仓来解释一下,两者的区别. notifyDataSetChanged:粮仓中得粮食少了,或者多了,发送通知. notifyDataSetInvalidated:粮仓变换了,比如原来从A仓取粮食,现在换

Android ImageView剖析及拓展

版本:1.0 日期:2014.6.11 2014.6.12 版权:© 2014 kince 转载注明出处 ImageView是开发中经常使用到的一个控件,也可以说是必不可少的.对于它的使用,除了注意ScaleType的理解和设置外,还需要注意其他一些问题,比如设置一张大的背景图片内存占用和释放等.还有它的拓展性方面,像圆角图片.圆形图片.图片边框等等.因此,如果想熟练使用这个控件,就需要对其实现的机制有一个基本的了解. ImageView也是直接继承于View类,主要的结构图如下: 鉴于篇幅大小

Exchanger源码Android版剖析

Exchanger是一个针对线程可以结对交换元素的同步器.每条线程把某个对象作为参数调用exchange方法,与伙伴线程进行匹配,然后再函数返回的时接收伙伴的对象.另外,Exchanger内部实现采用的是无锁算法,能够大大提高多线程竞争下的吞吐量以及性能. 算法实现 基本方法是维持一个"槽"(slot),这个槽是保持交换对象的结点的引用,同时也是一个等待填满的"洞"(hole).如果一个即将到来的"占领"(occupying)线程发现槽为空,然后

Android内核剖析.pdf:

下载地址:网盘下载 由柯元旦编著的<Android内核剖析>详细分析了Android内核的内部机制,包括窗口管理系统.Activity管理系统.输入法框架.编译系统等,为Android内核定制及高级应用程序开发提供技术参考. <Android内核剖析>适合于所有Android相关的工程师及产品经理,还可作为相关培训机构的教材. 柯元旦,1981年生于陕西咸阳,2003年毕业于西安电子科技大学通信工程学院:2003-2006年,创立了一家设计公司,提供便携式媒体播放器解决方案,基于T

Android内核剖析pdf

下载地址:网盘下载 由柯元旦编著的<Android内核剖析>详细分析了Android内核的内部机制,包括窗口管理系统.Activity管理系统.输入法框架.编译系统等,为Android内核定制及高级应用程序开发提供技术参考. <Android内核剖析>适合于所有Android相关的工程师及产品经理,还可作为相关培训机构的教材. 柯元旦,1981年生于陕西咸阳,2003年毕业于西安电子科技大学通信工程学院:2003-2006年,创立了一家设计公司,提供便携式媒体播放器解决方案,基于T

Android Adapter详解

Android Adapter Adapter是用来帮助填充数据的中间桥梁,比如通过它将数据填充到ListView, GridView, Gallery.而android 提供了几种Adapter:ArrayAdapter, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ListAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, SpinnerAdapter

Android下如何理解onMeasure,onLayout的过程

在Android中view如何完成绘制这个过程介绍了很多,但是很多理论化的东西,最近重新整理一下,通俗的讲解一下. View绘制过程就好比你向银行贷款, 在执行onMeasure的时候,好比银行告诉你大概贷款额度有多少?你根据自己的需求,进行各方面的计算,计算出一个自己大概需要的金额,然后告诉询问需要多少贷款.贷款额度好比显示空间大小. 实际代码执行过程是这样 onMeasure(int widthMeasureSpec, int heightMeasureSpec),其中widthMeasur