如何将数据从游标添加到viewpager

时间:2013-09-09 18:39:27

标签: android android-viewpager android-cursor

有没有办法将数据从游标添加到viewpager,我的光标中有数据,例如4个项目,我需要将每个项目放在页面上如何使用游标和viewpager这样做可能吗? 感谢。

1 个答案:

答案 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

祝你好运:)