我有一个listView。当我单击listView的一个元素时,会传递两个字符串数组和列表位置。我使用这些信息启动一个片段寻呼机。一切都很好。我得到了信息,一切都显示出来了。假设我点击listItem-5,新的片段将从5开始,我将能够转到6,7,8等等,但是我不能在4,3,2,1左转,我怎么能做到这一点呢?
public class ViewPagerFragment extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager_fragment);
ArrayList<String> email=getIntent().getExtras().getStringArrayList("email");
ArrayList<String> about=getIntent().getExtras().getStringArrayList("about");
int listPosition = getIntent().getExtras().getInt("position");
ViewPager vpPager = (ViewPager) findViewById(R.id.vpPager);
adapterViewPager = new MyPagerAdapter(getSupportFragmentManager(),email,about,listPosition);
vpPager.setAdapter(adapterViewPager);
}
private SmartFragmentStatePagerAdapter adapterViewPager;
// Extend from SmartFragmentStatePagerAdapter now instead for more dynamic ViewPager items
public static class MyPagerAdapter extends SmartFragmentStatePagerAdapter {
private final ArrayList<String> email;
private final ArrayList<String> about;
private int listPosition;
public MyPagerAdapter(FragmentManager fragmentManager,ArrayList<String> email,ArrayList<String> about,int lPosition) {
super(fragmentManager);
this.email=email;
this.about = about;
listPosition = lPosition;
}
// Returns total number of pages
@Override
public int getCount() {
return email.size();
}
// Returns the fragment to display for that page
@Override
public Fragment getItem(int position) {
return FirstFragment.newInstance(email.get(listPosition+position), about.get(listPosition+position));
}
// Returns the page title for the top indicator
@Override
public CharSequence getPageTitle(int position) {
return "Page " + position;
}
}
}发布于 2015-06-01 07:46:27
我不完全理解代码设计。请允许我理解您的示例场景。如果单击listItem-5,可能使用了代码:
adapterViewPager.getItem(0);如果您需要查看片段4,则需要返回。因此,使用代码:
adapterViewPager.getItem(-1);否则,使用代码:
adapterViewPager = new MyPagerAdapter(getSupportFragmentManager(),email,about, 0);注意,第四个参数的值为0,从第一个片段开始。
https://stackoverflow.com/questions/30561073
复制相似问题