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