是的,这是可能的,您需要一个 PagerAdapter,它会将您的 PagerView 与数据绑定并生成显示在 PagerView 上的每个“项目”(每个片段或页面)。
所以先重写一个PagerAdapter,例如:
public class MyPagerAdapter extends PagerAdapter
然后您必须重写在 PagerAdapter 上生成每个项目的方法,即 instantiateItem() 方法。此方法为您提供一个名为 position 的整数参数,它对应于将显示在 PagerView 上的项目列表中的项目编号。想象一本书,如果每一页都是一个项目,那么页码就是位置。
所以根据这个位置,每个项目都会有所不同,您必须通过代码向适配器解释。为此,您可以使用此位置访问您的数据列表并在列表和页面之间创建对应关系。
假设您有一个带有人名的 Person 表,并且您检索所有条目,然后创建一个 List 来保存来自该游标的所有名称数据。您现在可以使用项目位置访问您的列表,例如,list.get(position),并通过从该特定列表项中检索数据,您可以创建必须在 instantiateItem 上返回的单个页面。例如,您可以对包含名为 personName 的 TextView 的布局进行扩充,然后执行personName.setText(list_name.get(position)) 之类的操作。现在返回 LayoutView。然后,适配器将为列表中的每个项目创建一个视图。
所以你可以这样做:
ArrayList<String> names_list = new ArrayList<String>();
然后将游标信息存储在该 List 上(您可以做多个列表,也可以使用 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/widget/CursorAdapter.html
祝你好运:)