ViewPager的PagerAdapter不可以更新数据
2015-10-10 13:53
274 查看
在做项目的时候,发现即使调用了galleryAdapter.notifyDataSetChanged();
但是ViewPager还是不会更新原来的数据。
后来在stackoverflow上面找到了方法,原文链接:
http://stackoverflow.com/questions/7263291/viewpager-pageradapter-not-updating-the-view
于是花了一点时间,修改了代码:
[java] view
plaincopy
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, int position, 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]
可以更新数据了。嘿嘿。
转自:http://blog.csdn.net/gzsword/article/details/7284288
但是ViewPager还是不会更新原来的数据。
后来在stackoverflow上面找到了方法,原文链接:
http://stackoverflow.com/questions/7263291/viewpager-pageradapter-not-updating-the-view
于是花了一点时间,修改了代码:
[java] view
plaincopy
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, int position, 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]
可以更新数据了。嘿嘿。
转自:http://blog.csdn.net/gzsword/article/details/7284288
相关文章推荐
- linux 下利用ls grep 和正则表达式实现目录和文件的分开显示
- facadez模式
- 曹政解密中国互联网
- 如何使用git工作(更新中)
- 技术简历的七要七不要
- 大整数加减 加减运算
- srm 549
- 四倍经验:2010年省队选拔赛山东——大陆争霸
- 三个实例演示 Java Thread Dump 日志分析
- MYSQL 源代码编绎脚本
- Hadoop-调优剖析
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- HDOJ 4815 Little Tiger vs. Deep Monkey(概率DP)
- 2015 10月10日 工作计划与执行
- mysql删除一条数据后id不在连续的解决方法
- ActiveMQ安装和基本使用
- hdoj 2027 统计元音 C++
- u3d运行过程遇到的小问题(场景会时不时暂停)
- MySQL中char、varchar和text的区别
- 【eclipse下使用git上传(下载)代码至(从)github】