有没有办法将数据从光标添加到 viewpager,我的光标中有数据,例如 4 个项目,我需要将每个项目放在页面上如何使用光标和 viewpager 做到这一点?谢谢。
1 回答
是的,有可能,您需要一个 PagerAdapter,它会将您的 PagerView 与数据绑定并生成显示在 PagerView 上的每个“项目”(每个片段或页面)。
所以先覆盖一个PagerAdapter,例如:
public class MyPagerAdapter extends PagerAdapter
然后你必须重写在 PagerAdapter 上生成每个项目的方法,该instantiateItem()
方法。此方法为您提供一个名为position的整数参数,它对应于将显示在 PagerView 上的项目列表中的项目编号。想象一本书,如果每一页都是一个项目,那么页码就是位置。
所以根据这个位置,每个项目都会有所不同,您必须通过代码向适配器解释。为此,您可以使用此位置访问您的数据列表并在列表和页面之间创建对应关系。
假设您有一个带有人名的表 Person 并且您检索所有条目,您创建一个包含该游标中所有名称数据的列表。例如,您现在可以使用项目位置访问您的列表,list.get(position)
并且通过从该特定列表项中检索数据,您可以创建必须在 instantiateItem 上返回的单个页面。例如,您可以扩展一个布局,其中包含一个名为 personName 的 TextView,然后执行类似personName.setText(list_name.get(position))
. 现在返回 LayoutView。然后,适配器将为列表中的每个项目创建一个视图。
所以你可以做这样的事情:
ArrayList<String> names_list = new ArrayList<String>();
然后将游标信息存储在该列表上(您可以执行多个列表,并且可以使用 CursorAdapter 直接使用游标执行此操作,这只是一个示例),然后实例化您的适配器:
MyPagerAdapter adapter = new MyPagerAdapter(context, layout, names_list);
对于列表中的每个项目,适配器将运行 instantiateItem 方法并创建一个项目来填充 ViewPager,所以现在您所要做的就是将适配器与您的 ViewPager 绑定:
ViewPager pager = (ViewPager)findViewById(R.id.activity_search_viewpager);
pager.setAdapter(adapter);
这只是一个示例来解释 PagerAdapter 如何工作的想法,这个主题不仅仅是这个。无论如何,一旦您对事情的工作方式感到满意,您还可以检查 CursorAdapter,因此您可以直接从光标数据实例化项目,无需列表。
以下是您应该检查的一些 SDK 参考: http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html http://developer.android.com/reference/android/support/v4/小部件/CursorAdapter.html
祝你好运 :)