有没有办法将数据从游标添加到viewpager,我的光标中有数据,例如4个项目,我需要将每个项目放在页面上如何使用游标和viewpager这样做可能吗? 感谢。
答案 0 :(得分:1)
是的,你需要一个PagerAdapter,它会将你的PagerView与数据绑定,并生成在PagerView上显示的每个“项目”(每个片段或页面)。
首先覆盖PagerAdapter,例如:
public class MyPagerAdapter extends PagerAdapter
然后你必须覆盖生成PagerAdapter上instantiateItem()
方法的每个项目的方法。此方法为您提供名为 position 的整数参数,它对应于将在PagerView上显示的项目列表中的项目编号。想象一本书,如果每个页面都是一个项目,页码就是位置。
因此,根据这个位置,每个项目都会有所不同,您必须通过代码向适配器解释。为此,您可以使用此位置访问数据列表并在列表和页面之间创建对应关系。
假设您有一个人员名称,并且您检索所有条目,您创建一个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,因此现在您只需将Adapter与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
祝你好运:)