小编Cha*_*hao的帖子

调用setAdapter时,ViewPager并不总是刷新,FragmentStatePagerAdapter

首先,我使用FragmentStatePagerAdapter为ViewPager提供要显示的片段.

当app处于运行状态(即之后onResume())时,在ViewPager上调用setAdapter将始终工作并使我的ViewPager刷新,getItem(int position)调用适配器中的方法.

但是在方向更改后,如果我在onCreate(Bundle savedInstance)我的activity 的方法中调用setAdapter,getItem(int position)则不会调用该方法,并且会重用旧的片段.

我想也许FragmentManager正在做一些我不明白的事情?片段管理器是在方向更改期间唯一不会被破坏的东西.

谢谢

android adapter android-viewpager

7
推荐指数
1
解决办法
9015
查看次数

Android无限滚动网格,适配器是否必须无限增长?

我在Android上实现了一个简单的无限滚动GridView.我有以下组件:

  1. 一个带有onScrollListener的GridView,每当GridView滚动到最底层时,我就会启动AsyncTask以将更多项目加载到我的Adapter中.
  2. 一个适配器,它附加从AsyncTask获取的项,并触发notifyDataChanged(),以便GridView可以自行刷新.

这似乎工作得很好,除非在这种情况下适配器无限增长...我的意思是每当用户滚动到最后时我会继续向这个适配器附加项目,这似乎是一个内存问题.

实现无限适配器的正确方法是什么?我正在寻找概念,而不是为我做这件事的第三方罐子.

谢谢

解决方案
明确的答案有正确的理论.我对它的实现将加载的数据备份到sqllite数据库中,因此总体流程是:在线程中从Internet下载数据,解析并将数据存储到线程中的数据库中,在UI线程上触发notifyDataChanged.
适配器的getCount()方法只是从数据库中执行select count(id),它会立即从数据库中检索一批对象到内存中供适配器使用.

android android-adapter infinite-scroll endlessadapter

5
推荐指数
1
解决办法
1707
查看次数