Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android如何在按下()时设置viewpager的特定项目位置?_Java_Android - Fatal编程技术网

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

Java android如何在按下()时设置viewpager的特定项目位置?,java,android,Java,Android,//这是viewpager的适配器 public void setupViewPager(){ pageAdapter = new PageAdapter(getSupportFragmentManager()); pageAdapter.addFragment(FragmentDesigns.newInstance(), "INDIAFILINGS"); icfo = ICFO.newInstance();

//这是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
时,应用程序正在接近

在您的第二个活动中覆盖onbackPress方法,以便不会发生系统默认行为

@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);

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

在您的第一个活动中,覆盖onNewIntent,以便找到back press结果

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

这应该可以为您实现这一点

将您当前的查看页面位置存储在sharepref中,如果不为空,则检查viewpager.setCurrentItem(shareprefPosition)

给他做个解释吧,兄弟们当然可以,但我现在正在回答……谢谢。我有两个不同的活动,这是你第一次给出的代码activity@Vishali我认为你需要在问题中更好地解释你需要什么,因为从你的问题中,这是当用户在第二个活动中按back时,我们两人得出的答案,然后在第一个活动中,有一个方法onRestart()。您可以将第二个viewPager项目设置为默认值我想在用户在第二个活动中按back时设置viewPager currentitem第二个活动是否需要关闭?另外,由于您的应用程序正在关闭,我相信在启动第二个活动之前,您正在第一个活动中调用finish()。在重定向到第二个页面时,我在第一个活动中删除了finish。您如何调用第二个活动?在此处添加代码。在第二个活动中按Back键时,我将在commonclass中存储值。稍后,我将在第一个活动中获取值以设置viewpager currentitem位置您是否尝试过onResume?你可以把它放在Resume方法上。int-pageRedirect;pageRedirect=CommonClass.getPageRedirect();尝试{if(pageRedirect!=0){viewPager.setCurrentItem(1);}}}catch(异常e){e.printStackTrace();}
@Override
    public void onBackPressed() {
        if (viewPager.getCurrentItem() != 0) {
            viewPager.setCurrentItem(secondViewpagerItemPostion,false);
        }else{
             super.onBackPressed();
        }

    }