菜鸟浅谈对于Adapter及AdapterView的理解

      初学安卓半月菜鸟浅谈对于AdapterAdapterView的理解

犀利哥慎重声明:大神请绕路,菜鸟们一起来互勉!

 

     相信很多初学者跟我一样,在学习安卓基础的时候,刚开始接触到AdapterAdapterView这一章节的时候,大多数一开始的内心其实是拒绝的,里面的一些概念及方法一开始有些晦涩难懂,但是没办法,要想真正入门,这道坎必须得跨过,因为这是学习后面更复杂技术( 虽然我也不知道是啥...)的一块小小的垫脚石.

首先从学习方法来说,还是用大家都比较公认也是相对科学的学习新知识的一般套路,3W1H方法,以下我将从这四个方面浅谈我对于这一部分的理解,仅供大家参考,也算是对于自己所学知识的一个总结.

.what?Adapter以及AdapterView是什么?

     Adapter的中文解释为适配器,顾名思义就是通过合适的配置调整来连接某两个部分并使之能够协调工作的这么一个东东,单从概念上来看,像以前家里电视机怕被雷电劈导致电压不稳而安装的那种稳压器也可以看作是一个适配器(通过对电压的调整从而使得电视机能在不稳定电流输出下持续正常的工作),具体而高大上的说法是:

Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(view)之间一个重要的纽带.

不过这个概念好像也不难理解,那么知道什么是Adapter之后,AdapterView当然就是需要用到AdapterView.什么?非得整高大上的解释?好吧,那就勉强装个波:

AdapterView就是和数据有关的控件,例如ListView,GridView,SpinnerView,只要是在展示的过程中需要和数据交换的View都属于这一类(江郎才已尽..).

二.Why?为什么要用Adapter?

个人理解来看,使用Adapter最大的好处就是能够实现视图(view)跟数据的分离,这也是以后开发思想MVC模式里面的一个重大体现.大家应该还记得初学Common Layout(普通布局,神马RalativeLayout,LinerLayout吧啦吧啦之类)的时候,我们所构建出来的界面都是把要展现的控件以及数据直接写到XML文件里面的,试想要是这些数据事先不确定,需要从网上加载或是从数据库中调取,那我们是不是就感觉无能为力了呢,事实上确实是这样,毫无办法,只能望洋兴叹...所以引入了Adapter这一神器来解决这一系列的困扰,通过普通布局的编写,我们可以把大致的UI界面架构给粗略地描绘出来,但是具体到里面的控件摆放以及数据展现,就需要借助于Adapter这个中间乔梁来进行实现了,所以Adapter又可以理解为连接数据源跟视图之间的一座桥梁.本文将侧重介绍Adapter的应用场景及实现原理.

三.where?Adapter用在哪儿?

      这个问题还需要我解答?Adapter当然是用在AdapterView中啊,不理解的请自行智商充值,顺便也给我充一发~!

   

四.how?怎么用?

AdapterAdapterView的用法很灵活,正是这样,也就构成了初学者的难点,但是天下武功,万变不离其宗,理解其中的原理,即使做不到游刃有余,也能在遇到突发情况时不至于慌乱手脚.总结起来,大致是如下心法:

1.创建数据源

2.创建Adapter.并且将Adapter和数据源绑定在一起.

3.将装载好的Adapter绑定到我们想要展示的控件上面.

 

心法中提到了数据源,常见的数据源有String类型的数组用来存放一些文本方面的信息,也有可能是int型的数组用来存放资源的ID,更复杂点的,list集合,里面的元素类型是一个Map容器,这些都在具体使用中时慢慢去体会,也很好理解.

既然有不同类型的数据源,那当然需要有不同类型的适配器与之相匹配嘛,这里重点介绍三种类型的适配器(实际上是目前我就会这三种...)

1.ArrayAdapter

ArrayAdapter的主要应用场景是用来显示八大基本数据类型以及String类型数据的文本信息,个人目前觉得其用法局限性还是有一些的,不过正是因为如此,其用法也非常简单,不多说,上代码!未完待续~!

 

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值