PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。

要使用PagerAdapter,

首先要继承PagerAdapter类,至少覆盖以下方法:

在每次创建ViewPager或滑动过程中,以下四个方法都会被调用,而instantiateItem和destroyItem中的方法要自己去实现。

public abstract int getCount();

这个方法,是获取当前窗体界面数

public abstract boolean isViewFromObject(android.view.View arg0,java.lang.Object arg1);

这个方法用于判断是否由对象生成界面

public java.lang.Object instantiateItem(android.view.View container,int position);

这个方法,return一个对象,这个对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中

public void destroyItem(android.view.ViewGroup container,int position,java.lang.Object object);

这个方法,是从ViewGroup中移出当前View

public class ViewPagerAdapter extends PagerAdapter{

@Override

public int getCount() {

// TODO Auto-generated method stub

return 0;

}

@Override

public boolean isViewFromObject(View arg0,Object arg1) {

// TODO Auto-generated method stub

return false;

}

@Override

public void destroyItem(View container,Object object) {

// TODO Auto-generated method stub

super.destroyItem(container,position,object);

}

@Override

public Object instantiateItem(View container,int position) {

// TODO Auto-generated method stub

return super.instantiateItem(container,position);

}

}

ViewPager的PagerAdapter不可以更新数据问题的解决在做项目的时候,发现即使调用了

galleryAdapter.notifyDataSetChanged();

但是ViewPager还是不会更新原来的数据。

后来在stackoverflow上面找到了方法,原文链接:

http://stackoverflow.com/questions/7263291/viewpager-pageradapter-not-updating-the-view

于是花了一点时间,修改了代码:

protected PagerAdapter galleryAdapter = new PagerAdapter() {

@Override

public boolean isViewFromObject(View arg0,Object arg1) {

return arg0 == ((View)arg1);

}

@Override

public int getCount() {

return size;

}

@Override

public Object instantiateItem(View container,int position) {

return bindGalleryAdapterItemView(container,position);

}

@Override

public void destroyItem(View container,Object object) {

((ViewPager) container).removeView((View) object);

};

@Override

public void finishUpdate(View arg0) {}

@Override

public void restoreState(android.os.Parcelable state,ClassLoader loader) {

};

@Override

public Parcelable saveState() {

return null;

}

@Override

public void startUpdate(View arg0) {}

@Override

public int getItemPosition(Object object) {

return POSITION_NONE;

}

};

注意:POSITION_NONE 是一个PagerAdapter的内部常量,值是-2,

API里面有说明:

int android.support.v4.view.PagerAdapter.POSITION_NONE = -2 [0xfffffffe]

可以更新数据了。嘿嘿。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

android viewpager 详解,详解Android App中ViewPager使用PagerAdapter的方法相关推荐

  1. Android Studio 实现将视频资源嵌入APP中

    Android Studio 实现将视频资源嵌入APP中 (直取思路跟代码跳转文末,如有帮助勿忘分享点赞奥!你的支持是我更新的动力!) 在正文之前首先想给大家引入安卓数据存储路径: 内部存储inter ...

  2. android 中打电话,Android 在 APP 中实现拨打电话的方法

    Android 在 APP 中实现拨打电话的方法 2020-12-20 09:17:08 方法一: 首先添加拨打电话的权限: /** * 拨打电话(直接拨打电话) * @param phoneNum ...

  3. android读取带公章的pdf文件,APP中如何显示带电子签名的PDF文件

    之前碰到一个需求,需要在手机 APP 中显示 pdf 文件.经过调研发现,在电脑上的浏览器如 chrome.safari等,可以直接显示 pdf 文件.由此联想到,在 APP 中能否通过浏览器来加载显 ...

  4. android怎么监听多点触摸_Android开发中多点触摸的实现方法

    Android多点触控需要LCD驱动和程序设计支持,其实我们只要采用电容屏触摸手机的技术即可,接下来,就让爱站技术频道小编来讲解Android开发中多点触摸的实现方法吧! 多点触摸技术在实际开发过程中 ...

  5. Android Studio真机调试,Run Configuration中没有deployment target解决方法

    Android Studio真机调试时,Run Configuration中没有deployment target解决方法 一.手机USB线连接电脑,选择传输文件,如果选择"仅充电" ...

  6. 安卓app中国际化任何资源的方法

    先说下国际化的问题.首先,一般认为所谓的国际化不包含逻辑的国际化,那么国际化涉及到的内容就是与广义上的用户UI相关的,包括用户能看到.听到.摸到的东西.当然,摸到东西,一般在软件层面就不探讨了.所以, ...

  7. android dlna uri,DLNA 在自己的APP 中添加投屏功能

    功能:让本机的视频在其他设备上播放. demo 学习中 关键词: cling demo from: DROID DLNA 关于投屏的原理,协议相关的知识已经在上一篇中说明. 关于设备搜索,查找等不在此 ...

  8. 站长在线Python精讲:在Python中使用正则表达式的sub()方法替换字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的sub()方法替换字符串详解>. 在Python中使用正则表达式的sub()方法替换字符串. ...

  9. 转:设置允许用户利用itunes同步一些资源到我们的App中

    简单的解释一下,允许用户利用itunes同步一些资源到我们的App中,其实就是如一些地图等软件一样,就拿地图软件来说吧,如果开发者在制作的时候将每个地区的离线地图包全部放置在一个ipa中,那么不仅造成 ...

最新文章

  1. AI项目对接第二期——缺陷检测
  2. python协程学习——写个并发获取网站标题的工具
  3. idea配置Spring遇到的问题(Lombok和修改镜像仓库)
  4. 牛人的博客(机器学习,图像处理,计算机视觉)
  5. 数学--数论--随机算法--Pollard Rho 大数分解算法 (带输出版本)
  6. Highcharts的使用
  7. 【推荐】英国金融时报推荐的数据可视化图表分类图
  8. photoshop制作gif去掉杂色
  9. Python使用wordcloud+pillow基于给定图像制作词云
  10. c语言字符型211,C语言简单的字符驱动程序介绍
  11. 命名空间“Aspose”中不存在类型或命名空间名称“Slides”。
  12. Yii Framework2.0开发教程(6)数据库mysql--ActiveRecord
  13. POI操作Microsoft Office 之 操作PPT简单示例(附源码)
  14. 创建用户要给session权限,报错:user lacks CREATE SESSION privilege
  15. win10:为U盘设计图标
  16. Mac Book文件夹加密
  17. 16个博士回河南乡村创业,已有上市计划
  18. 离阿里最近的机会,来了
  19. 01马氏链及其平稳分布
  20. 揭秘Google排名的60个因素

热门文章

  1. 别以为用留言簿留言骂我我就查不出来!哼~
  2. VB 字符串续行符最多25行…………
  3. 2018mysql数据库面试题_面试题: mysql 数据库去重 已看1 不好使
  4. 如何将地址栏打开的图标隐藏_如何制作一款手机主题?这套UI主题图标教程将为你解密!...
  5. 古风祥云PNG免抠素材,喜欢吗?
  6. 海报设计素材模板|炫彩创意PSD分层时尚艺术海报 ​​​​
  7. wits数据格式_WITS标准
  8. php sql update 字段a=字段b的信息_企业级PHP求职最全精品面试100问(附答案)
  9. MyBatis的总结(上)
  10. 记一次pthread_cancel_init段错误分析(bpftrace)