Adapter 适配器基础讲解

2023-11-05

Adapter 适配器基础讲解

1.MVC模式的简单理解

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

 

关系图解析:

* Model :通常可以理解为数据 , 负责执行程序的核心运算与判断逻辑 ,, 通过 view 获得用户 输入的数据 , 然 后根据从数据库查询相关的信息 , 最后进行运算和判断 , 再将得到的结果交给 view 来显示
* view : 用户的操作接口 , 说白了就是 GUI , 应该使用哪种接口组件 , 组件间的排列位置与顺序都需要设计
* Controller : 控制器 , 作为 model view 之间的枢纽 , 负责控制程序的执行流程以及对象之间的一个互动
M model :数据模型 —— 数据源,
V view :显示的视图控件 ——AdapteView
C controller :控制器 ——adapter
AdapterView Adapter (适配器)控件
AdapterView 适配器 View 常用的有: ListView GridView Spinner RecycleView
其内容通常是一个包含多项相同格式资源的列表,每次只显示其中一项。这个存放 Adapter 控件内容的列表, 在android 被称为 AdapterView (适配器 View )使用的时候一般都会先给适配器填充内容。然后将已经设定 好内容的适配器(Adapter)设置到 AdapterView

 

2.Adapter概念解析

首先我们来看看他的继承结构图:

 

* BaseAdapter :抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个 Adapter
* ArrayAdapter :支持泛型操作,最简单的一个 Adapter ,只能展现一行文字 ~
* SimpleAdapter :同样具有良好扩展性的一个 Adapter ,可以自定义多种效果!
* SimpleCursorAdapter :用于显示简单文本类型的 listView ,一般在数据库那里会用到,不过有点过时, 不推荐使用!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Adapter 适配器基础讲解 的相关文章

  • Java生成范围内不重复的随机数

    我想生成 1 到 4 范围内的随机数 包括 4 这是我的代码 int num r nextInt 4 1 r is instance of Random 但是 我在循环中运行上述代码 并且不想重复随机数 现在发生的事情我经常得到 1 1 1
  • Android WebView setCertificate 问题 SSL 问题

    我看过很多关于 SSL 错误的帖子和信息 并且我自己也偶然发现了一个 我尝试使用 GlobalSign CA BE 证书通过 Android WebView 访问网页 但收到不受信任的错误 对于大多数手机来说 处理这个问题效果很好 只需告诉
  • 使android listview布局可滚动

    我有一个 xml 文件 其布局为 ASCII 形式 ImageView TextView List
  • 堆内存与对象内存

    根据一篇关于Java内存和特性的论文 内存分数分为两种类型 堆内存 即应用程序在运行时消耗的内存 对象内存 即程序中使用的各种对象分配的内存 例如整数和字符串等 他们的意思是stack当他们说时的记忆object记忆 或者它们是什么意思 很
  • 如何从 Jackson 中的自定义解串器调用默认解串器

    我在杰克逊的自定义解串器有问题 我想访问默认序列化器来填充我要反序列化的对象 在填充之后 我将做一些自定义的事情 但首先我想使用默认的 Jackson 行为反序列化对象 这是我目前拥有的代码 public class UserEventDe
  • 从多个地方绘制 JPanel

    我目前正在为学校开发一款 Java 2D 游戏 我们必须使用抽象工厂设计模式 对于 2D 实现 我使用工厂如下 public class Java2DFact extends AbstractFactory public Display d
  • 返回 RxJava 的 Completable 的方法的命名约定

    我有一个带有视图类的 Android 应用程序 Fragment Activity 观察其ViewModel The ViewModel公开方法 例如getUserName返回Observable
  • 如何使用 Tomcat 启用浏览器缓存静态内容(图像、css、js)?

    如何使用 Tomcat 启用浏览器缓存静态内容 图像 css js 首选的解决方案是编辑 spring MVC 配置文件或 web xml 尝试 改变值
  • Spring 非托管 bean 的依赖注入

    我有一个非托管的 JPA 域类 它是通过实例化的new操作员 UserAccount account new UserAccount userRepository save account In my UserAccount类 我有一个be
  • 调用 MediaScannerConnection.scanFile 后,MediaStore 内的 Android 缩略图不会刷新

    我正在尝试构建一个类似画廊的应用程序 它将在外部存储上执行以下功能 列出所有包含图像的文件夹 列出所有可供公众使用的图像 不会探测里面的文件Android data 到目前为止 我可以列出所有图像以及包含图像的文件夹 然而 我后来发现这些图
  • 在 Struts 2 中使用单个文件标签上传多个文件

    我想使用单个 Struts 2 文件标签上传多个文件 就像在 Gmail 中一样 我们使用 CTRL 键来选择多个文件来附加多个文件 我知道如何上传多个文件 但我想使用单个文件标签 我在一个小画廊应用程序中上传多个文件 如果您的操作已设置为
  • 使用 Spark SQL 时找不到 Spark Logging 类

    我正在尝试用 Java 进行简单的 Spark SQL 编程 在程序中 我从 Cassandra 表获取数据 将RDD into a Dataset并显示数据 当我运行spark submit命令 我收到错误 java lang Class
  • 未找到 GroovyEvaluator

    我会尝试在以下位置制作我的 PIE 3D 报告iReport 在我的 struts xml 中 我用这个来调用我的报告
  • 无法放置双重 SharedPreferences

    出现错误 这种类型的共享首选项编辑器的 put double 方法未定义 Eclipse 提供了一种快速修复方法 将强制类型转换添加到编辑器 但是当我这样做时 它仍然给出错误 为什么我不能 put double 代码 Override pr
  • Android:如何实现“分布式控制”

    对于与 Android 开发者论坛的交叉发帖表示歉意 那里没有收到任何答复 我有一个有趣的设计挑战 我有一个前端 Activity 和一个后端 用本机 C C 编写 代码 后端是一个复杂的对象 它部分控制 应用程序流程一旦启动就在它自己的线
  • 如何获取特定 GLSurfaceView 的 EGL 显示/上下文

    这是后续我原来的问题 https stackoverflow com questions 6509588 egl vs gles 2 0 on android e g java 这可能太宽泛 而这个可能太具体 但也许我可以应用牛顿法 我的具
  • 使用本机短信编辑器发送短信后如何返回意图

    我正在使用下面的代码使用本机短信编辑器发送短信 Intent intent new Intent Intent ACTION VIEW intent putExtra address 1234567890 intent putExtra s
  • 在 Android 应用程序中启动应用程序时仅显示一次版本信息

    我想显示一个带有 确定 按钮的简单信息对话框 介绍此版本中的新增内容 但它应该仅在第一次启动时显示 实施这个的最好方法是什么 我会 并且已经 使用带有布尔值或 int 值的 SharedPreferences 只需检查最后一个版本是否比当前
  • Swing:如何创建事件并将其分派给组件?

    我需要将一些事件发送到 Swing 中的组件 因此它的处理方式就像任何用户生成的标准 Swing 事件一样 基本上 类似于宏记录器 然后是 JEditorPane 的执行器 但我需要对生成的事件有更多的控制 所以 假设我有一个编辑 我想 捕
  • 与桌面浏览器相比,移动浏览器有多强大? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 5.2 可变参数

    5 2 可变参数 Lua函数可以接受可变数目的参数 和C语言类似在函数参数列表中使用三点 表示函数有可变的参数 Lua将函数的参数放在一个叫arg的表中 除了参数以外 arg表中还有一个域n表示参数的个数 例如 我们可以重写print函数
  • JAVA根据模板生成PDF文件并导出

    JAVA根据模板生成并导出PDF 实现功能 根据模板生成PDF文件 模板文件参数可配 可手动修改 一 PDF导出效果 先看一下导出的demo文件 具体样式可手动修改 下图为demo pdf ftl导出PDF文件 下图为list pdf ft
  • 图像分割之Unet解析及实现代码

    Unet解析及实现代码 论文连接 https arxiv org pdf 1505 04597 pdf 源码连接 https github com FENGShuanglang unet 图像分割 Unet网络结构详解 Unet网络结构 o
  • c++ auto关键字使用

    C 11 auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型 类似的关键字还有decltype 举个例子 int a 10 auto au a a 自动类型推断 au a为int类型 cout lt lt typei
  • 在 NLP 中训练 Unigram 标记器

    介绍 单个标记称为 unigram Unigram 标记器是一种只需要一个单词来推断单词的词性标记器类型 它有一个单词的上下文 NLTK库为我们提供了UnigramTagger 并从NgramTagger继承而来 在本文中 让我们了解 Un
  • UDP实现点对点聊天(多线程)-C语言

    UDP实现点对点聊天 多线程 服务器端 操作步骤 1 编译 gcc UDPM c lws2 32 lmycon lwinmm o UDPM exe 2 运行 UDPM include
  • umi框架编写简单的验证码登录

    首先我们需要先创建一个layouts的文件夹 用来存储跳转动画的文件 layouts的文件夹和pages同级 然后在pages中创建一个login文件夹用来存储登录文件 然后再里面创建login和index文件开始编写代码 接下来就是废话不
  • 开开心心带你学习MySQL数据库之第六篇下

    插入查询结果 把查询和新增联合起来 把查询结果作为新增的数据 例子 把student1表的查询结果作为新增数据插入到student2表中 create table student1 id int name varchar 20 create
  • 英伟达闲着没事,做了一个超级逼真的人脸生成AI系统!

    Nvidia 英伟达的人脸面部表情方法真的是GAN 风格 一种新的生成性对抗网络方法让技术观察者摸不着头脑 图像如何虚假而又看起来如此真实 研究人员在一段视频中说 我们想出了一种新的发生器 可以自动学习分离图像的不同方面而无需任何人为监督
  • 3阶Hermitian正定矩阵Cholesky分解通用表达式

    pdf文件 算法原理 将一个 n n n阶Hermitian正定矩阵 A A A分解为一个下三角矩阵 L L
  • java拦截通过url访问页面,必须通过登录页面访问目标页面

    在web xml中配置过滤
  • ROS AGV 笔记

    Ubuntu18 04 install of ROS Melodic 1 Installation 1 1 Configure your Ubuntu repositories 1 2 Setup your sources list sud
  • STM32_USART

    1 时钟使能 RCC APB2PeriphClockCmd RCC APB2Periph USART1 RCC APB2Periph GPIOA ENABLE USART1 GPIOA 2 引脚配置 GPIO InitTypeDef GPI
  • 二叉树的层序遍历(广度优先遍历)

    二叉树的层序遍历 Name 二叉树的层序遍历 Copyright Author lkm Date 01 04 22 21 47 include
  • Web开发权威指南笔记(三)

    书 Web开发权威指南 美 Chris Aquino Todd Gandee著 为3rd实战项目Chattrbox练习以及代码整理 全为个人借鉴本书产出 若需要转载请联系通知我 请尊重原创 谢谢 整理了大概8天了 内容比较多 很多重点都整理
  • Eigen: C++开源矩阵计算工具——Eigen的简单用法

    Eigen非常方便矩阵操作 当然它的功能不止如此 由于本人只用到了它的矩阵相关操作 所以这里只给出了它的一些矩阵相关的简单用法 以方便快速入门 矩阵操作在算法研究过程中 非常重要 例如在图像处理中二维高斯拟合求取光斑中心时使用Eigen提供
  • Android优秀开源项目汇总

    UI相关 图片 Android Universal Image Loader com nostra13 universalimageloader 异步加载 缓存 显示图片 ImageLoader com novoda imageloader
  • multipartFile.getOriginalFilename();不能获取原文件名称,也就是含有路径名

    一直在debug 发现只能获取文件名 进去看源代码 翻译过来就是 返回客户端文件系统中的原始文件名 p 这可能包含路径信息 取决于所使用的浏览器 但它通常不会与opera浏览器有关 只是可能包含路径名 所以我试了360浏览器 谷歌 火狐都只
  • 进程和线程的区别和联系

    一 简介 进程 进程是操作系统资源分配的基本单位 进程是指正在运行的程序实例 每个进程都有自己的内存空间 代码 数据和资源 操作系统通过管理进程来控制计算机的资源分配 每个进程都有一个唯一的标识符 称为进程 ID 以便操作系统可以识别和管理
  • Adapter 适配器基础讲解

    Adapter 适配器基础讲解 1 MVC模式的简单理解 在开始学习 Adapter 之前我们要来了解下这个 MVC 模式概念 举个例子 大型的商业程序通常由多人一同开 发完成 比如有人负责操作接口的规划与设计 有人负责程序代码的编写如果要