首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从一个特定的位置开始片段并能够回到以前的位置?

如何从一个特定的位置开始片段并能够回到以前的位置?
EN

Stack Overflow用户
提问于 2015-05-31 18:28:23
回答 1查看 806关注 0票数 0

我有一个listView。当我单击listView的一个元素时,会传递两个字符串数组和列表位置。我使用这些信息启动一个片段寻呼机。一切都很好。我得到了信息,一切都显示出来了。假设我点击listItem-5,新的片段将从5开始,我将能够转到6,7,8等等,但是我不能在4,3,2,1左转,我怎么能做到这一点呢?

代码语言:javascript
复制
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;
        }

    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-06-01 07:46:27

我不完全理解代码设计。请允许我理解您的示例场景。如果单击listItem-5,可能使用了代码:

代码语言:javascript
复制
adapterViewPager.getItem(0);

如果您需要查看片段4,则需要返回。因此,使用代码:

代码语言:javascript
复制
adapterViewPager.getItem(-1);

否则,使用代码:

代码语言:javascript
复制
adapterViewPager = new MyPagerAdapter(getSupportFragmentManager(),email,about, 0);

注意,第四个参数的值为0,从第一个片段开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30561073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档