欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android开发从一个activity设置跳转到另一个activity中的一个fragment中的一个viewpager中的某一个页面

程序员文章站 2022-03-29 17:05:40
...

         最近做项目遇到一个问题,Android开发从一个activity设置跳转到另一个activity中的一个fragment中的一个viewpager中的某一个页面,也就是两个activity之前的转换,在这里就说为AActivity和Bactivity吧,AActivity中有两个fragment,一个是slidingFragment一个是contentFragment,其中contentFragment中的viewpager又有四个页面,view1,view2,view3以及view4,目前需要从BActivity跳转到这个view2,在解决这个问题居然花了整整两天的时间,新手学习Android的开发实在是心累啊..........如果直接在BActivity中写:

Intent intent=new intent(this,AActivity.class);
startActivity(intent);

        如果直接这样跳转,只会跳转到AActivity中起始的默认界面,但是目前我们需要的其中一个fragment中的viewpager中的一个页面,在这里需要有参数的传递。因此在BActivity中设置监听的时候,需要携带一个参数,在BActivity中应该这样写:

public void onClick(View view) {
    Intent intent=new Intent(BActivity.this,AActivity.class);
    intent.putExtra("id",1);    //在这里传递参数
    BActivity.this.startActivity(intent);	 
}
       上面的代码传递了参数,然后需要在AActivity中来接收参数,进行相应的相应。
protected void onResume() { 
		int id=getIntent().getIntExtra("id",0);
		if(id==1){
			ContentFragment fragment=new ContentFragment();
			FragmentManager fmanger=getSupportFragmentManager();
			FragmentTransaction transaction=fmanger.beginTransaction();
			transaction.replace(R.id.fl_content,fragment);
			transaction.commit();
			Intent i=new Intent();
			i.setClass(AActivity.this, ContentFragment.class);
	 		i.putExtra("id", 1); 
		}
         通过上面的代码,现在该fragment为ContentFragment,然后在向ContentFragment传递参数,希望显示的是viewpager中的view2,在contentFragment中获取参数进行相应:
@Override
	public void onResume() {
		int id=mActivity.getIntent().getIntExtra("id", 0);
		System.out.println(id);
		if(id==1){
			mViewPager.setCurrentItem(1);  //view2是viewPager中的第二个view,因此设置setCurrentItem(1)。
		}
		super.onResume();
	}

        大功告成了,一些小问题又不会有错误,但是又达不到自己预定的效果,真的是很烦,搞了那么久总算是弄出来了!!!!根据自己的需要设置传递的参数即可!!!