再次内容View的ViewPager该适配器PagerAdapter简包,支持List数据与SparseArray数据。随着更新的浏览功能。

首先,首先贴上顶部抽象类代码:

/** Date: 14-8-18* Project: Access-Control-V2*/
package cn.irains.access_control_v2.common;import android.support.v4.view.PagerAdapter;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;import java.util.List;/*** 抽象的PagerAdapter实现类,封装了内容为View的公共操作.* Author: msdx (645079761@qq.com)* Time: 14-8-18 下午2:34*/
public abstract class AbstractViewPagerAdapter extends PagerAdapter {protected SparseArray<View> mViews;public AbstractViewPagerAdapter() {mViews = new SparseArray<View>();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {View view = mViews.get(position);if (view == null) {view = newView(position);mViews.put(position, view);}container.addView(view);return view;}public abstract View newView(int position);public void notifyUpdateView(int position) {View view = updateView(mViews.get(position), position);mViews.put(position, view);notifyDataSetChanged();}public View updateView(View view, int position) {return view;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(mViews.get(position));}}

这里仅仅对View相关的操作进行封装。不涉及不论什么数据,并添加了两个方法,一个是notifyUpdateView(int position)。调用它之后将会去更新指定位置的视图。

还有一个方法是public View updateView(View view, int position)。在这里进行更新视图的详细操作。

接下来看数据为List的封装,代码例如以下:

/** Date: 14-8-18* Project: Access-Control-V2*/
package cn.irains.access_control_v2.common;import android.view.View;import java.util.List;/*** 抽象的PagerAdapter实现类,封装了内容为View,数据为List类型的适配器实现.* Author: msdx (645079761@qq.com)* Time: 14-8-18 下午2:34*/
public abstract class AbstractPagerListAdapter<T> extends AbstractViewPagerAdapter {protected List<T> mData;public AbstractPagerListAdapter(List<T> data) {mData = data;}@Overridepublic int getCount() {return mData.size();}public abstract View newView(int position);public T getItem(int position) {return mData.get(position);}
}

方法还是和上篇文章基本一样的。仅仅是有些方法抽取到父类中。然后在该类中继承。

相同。数据为SparseArray的适配器封装类代码与其相似,例如以下:

/** Date: 14-8-18* Project: Access-Control-V2*/
package cn.irains.access_control_v2.common;import android.util.SparseArray;
import android.view.View;/*** 抽象的PagerAdapter实现类,封装了内容为View,数据为SparseArray类型的适配器实现.* Author: msdx (645079761@qq.com)* Time: 14-8-18 下午2:34*/
public abstract class AbstractPagerSparseAdapter<T> extends AbstractViewPagerAdapter {protected SparseArray<T> mData;public AbstractPagerSparseAdapter(SparseArray<T> data) {mData = data;}@Overridepublic int getCount() {return mData.size();}public abstract View newView(int position);public T getItem(int position) {return mData.valueAt(position);}
}

二手。只需要继承和实施newView(int position)该方法可以是。

版权声明:本文博主原创文章,博客,未经同意不得转载。

Android开发技巧——PagerAdapter再简单的包相关推荐

  1. Android开发技巧——大图裁剪

    本篇内容是接上篇<Android开发技巧--定制仿微信图片裁剪控件> 的,先简单介绍对上篇所封装的裁剪控件的使用,再详细说明如何使用它进行大图裁剪,包括对旋转图片的裁剪. 裁剪控件的简单使 ...

  2. Android开发技巧——自定义控件之自定义属性

    Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个 ...

  3. 一些很不错的Android开发技巧

    一些很不错的Android开发技巧,这个项目翻译自 android-tips-tricks 去掉了一些我认为不重要的,对我使用过的东东做了评价,同时翻译了一些自己没有注意到的知识点的文章. ❤️ st ...

  4. Android开发技巧——自定义控件之组合控件

    Android开发技巧--自定义控件之组合控件 我准备在接下来一段时间,写一系列有关Android自定义控件的博客,包括如何进行各种自定义,并分享一下我所知道的其中的技巧,注意点等. 还是那句老话,尽 ...

  5. android开发技巧杂谈

    android开发技巧一 android的一些常用包是发布在国外的,所以一些包,我们下载不下来,我们可以使用阿里云的镜像地址(maven { url 'https://maven.aliyun.com ...

  6. Android开发进阶之NIO非阻塞包(一)

    Android开发进阶之NIO非阻塞包 这个系列转载于http://www.android123.com.cn/androidkaifa/695.html,特此说明 对于Android的网络通讯性能的 ...

  7. android动画背景,Android开发之背景动画简单实现方法

    在Android开发中,我们都会接到项目的业务需求,实现应用程序背景动画的效果,接下来,爱站技术频道小编带给大家的Android开发之背景动画简单实现方法. 1.先创建动画层,有三张图片 androi ...

  8. android中checkbox使用方法,Android开发中CheckBox的简单用法示例

    本文实例讲述了Android开发中CheckBox的简单用法.分享给大家供大家参考,具体如下: CheckBox是一种在界面开发中比较常见的控件,Android中UI开发也有CheckBox,简单的说 ...

  9. 社区说|常用 Android 开发技巧

    活动时间 4月7日(本周四) 20:00-21:00 活动日程 20:00-20:45 主题分享 常用 Android 开发技巧 李老师的开发技巧私房菜,一定有你没吃过的菜! 重构技巧 常用插件 阅读 ...

最新文章

  1. 2022-2028年中国汽车俱乐部行业发展趋势与投资战略研究报告
  2. JavaScript 笔记(2) -- 类型转换 正则表达 变量提升 表单验证
  3. DevOps笔记-04:DevOps工具和文化缺一不可
  4. Java中矩阵运算(math3的使用)
  5. 前端框架 Bootstrap 4.4.0 发布
  6. 【恋上数据结构】跳表(Skip List)原理及实现
  7. TypeError: '
  8. 苹果Mac 3D 数字绘画工具:Substance 3D Painter
  9. Android JNI 本地开发接口
  10. 安卓机顶盒刷机linux,安卓机顶盒刷机 最简单的刷机教程【图文教程】
  11. 计算机网络技术毕业生实习报告_计算机*应届毕业实习报告范文
  12. 东航建设漏洞管理平台的探索实践
  13. top20万_美国top20大学博士,回国进腾讯后感叹:月入6万憋屈,后悔回国了
  14. 温习linux的常用命令
  15. 简单的动画(梦幻西游)
  16. [maya学习笔记(18)] 粒子系统 - 落叶纷飞
  17. 2021-01-16 SONiC系统管理10 Telemetry
  18. SQL server卸载软件(可修复注册表)
  19. 微型计算机控制系统分几类,微型计算机控制技术 潘新民版 答案
  20. 计算机键盘锁不了怎么办,电脑键盘被锁,打字打不出来怎么处理,

热门文章

  1. ThinkPHP框架2.1版本单步执行过程
  2. Apache 软件基金会:顶级项目仍使用老旧软件,补丁作用被削弱
  3. 猎洞高手Orange Tsai 亲自讲解 ProxyShell write-up
  4. 奇安信代码卫士报送的漏洞获评“CNVD平台2019年度最具价值漏洞”
  5. http状态码竟然可以这样记
  6. LintCode刷题——打劫房屋I、II、III
  7. centos 实现ssh远程连接docker
  8. 完整学习git三 查看暂存区目录树 git diff
  9. oracle get_ddl XSL error 解决方法
  10. Hibernate dbcp连接池使用方法