Activity和Fragment之间的跳转方式

1,从同一个Activity的一个Fragment跳转到另一个Fragment

1
2
3
4
5
6
//主要的代码逻辑就是这一块儿 使用replace来替换掉当前的fragment
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.xx, new xxxFragment(), null)
.commit();

2,从一个Activity的Fragment跳转到另一个Activity

1
2
3
//这个其实和Activity的跳转差不多
Intent intent = new Intent(mContext, OtherActivity.class);
startActivity(intent);

3,从一个Activity跳转到另外一个Activity的Fragment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//当前需要跳转的Activity
Intent intent = new Intent(OtherActivity.this, MainActivity.class);
intent.putExtra("id",1);
startActivity(intent);

//跳转到的MainActivity
//先获取到从上个fragment传递过来的数据,然后通过判断看是否跳转到哪一个fragment
int id = getIntent().getIntExtra("id", 0);
if (id == 1) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container,new YourFragment())
.commit();
}

4,从一个Activity的Fragment跳转到另外一个Activity的Freagment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//这一个跳转和第三种跳转都是一样的思路

//当前需要跳转的fragment
Intent intent = new Intent(mContext, MainActivity.class);
intent.putExtra("id",1);
startActivity(intent);

//跳转到的MainActivity
//先获取到从上个fragment传递过来的数据,然后通过判断看是否跳转到哪一个fragment
int id = getIntent().getIntExtra("id", 0);
if (id == 1) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container,new YourFragment())
.commit();
}