繁体   English   中英

android如何在onBackPressed()时设置viewpager的特定项目位置?

[英]android how to set particular item position for viewpager when onBackPressed()?

//这是viewpager的适配器

 public void setupViewPager(){
    pageAdapter = new PageAdapter(getSupportFragmentManager());
                pageAdapter.addFragment(FragmentDesigns.newInstance(), "INDIAFILINGS");
                icfo = ICFO.newInstance();
                pageAdapter.addFragment(icfo, "iCFO PLATFORM");
                viewPager.setAdapter(pageAdapter);
                tabLayout.setupWithViewPager(viewPager);
    // here code to set particular item in viewpager
    int pageRedirect;
                pageRedirect=CommonClass.getPageRedirect();
                try {
                    if(pageRedirect!=0){
                        viewPager.setCurrentItem(1);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
    }

我正在用两个片段实现viewpager在第二个片段中,我有数据列表,如果用户从列表中选择任何项目,它将重定向到另一个活动。如果用户在活动中执行onbackPress ,我想将viewpager第二个片段设置为当前片段

注意:问题是当我做onbackPress的应用程序越来越近

在第二个活动中覆盖onBackPressed方法,以免发生系统默认行为

@Override
public void onBackPressed() {

   Intent firstintent = new Intent(context,Firstactivity.class);

firstintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);

   startActivity(firstintent);

}

这将打开第一个活动,关闭第二个活动并将结果传递到第一个活动的onNewIntent中

在您的第一个活动中,覆盖onNewIntent,以便找到反向按下结果

@Override
protected void onNewIntent(Intent intent) {
    yourvp.setCurrentItem(positionyouneed);
}

这应该为您解决问题

@Override
    public void onBackPressed() {
        if (viewPager.getCurrentItem() != 0) {
            viewPager.setCurrentItem(secondViewpagerItemPostion,false);
        }else{
             super.onBackPressed();
        }

    }

将您的当前视图分页器位置存储在sharepref中,如果不为null,则检查它的位置,然后viewpager.setCurrentItem(shareprefPosition);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM