【Android】Fragment跳转系列

作者: 李玉凯 分类: Android 发布时间: 2019-06-27 17:39

一、同一个Activity下Fragment之间相互跳转(含带参数)

Fragment1跳转到Fragment2中

1.封装一个方法

这样封装是方便一个Activity下有多个Fragment来回跳转

public interface RegisterTrigger {
    void triggerView(Fragment fragment);
}

2.当前Activity继承RegisterTrigger 

public class RegisterActivity extends Activity implements RegisterTrigger{
private Fragment mCurFragment;//表示当前Fragment

}

3.在当前Acticity中复写triggerView方法

    @Override
    public void triggerView(Fragment fragment) {

        //重新赋值当前正在显示的Fragment
        mCurFragment = fragment;
        //切换显示
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.lay_container, fragment)
                .commit();
    }

4.在Fragment1中执行跳转方法

首先得到RegisterTrigger 

private RegisterTrigger trigger;

@Override
public void onAttach(Context context) {
     super.onAttach(context);
     trigger = (RegisterTrigger) context;
}

然后执行跳转

RegisterPersonageFragment fragment = new RegisterPersonageFragment();
trigger.triggerView(fragment);

如果带参数的话

RegisterPersonageFragment fragment = new RegisterPersonageFragment ();
Bundle args=new Bundle();
args.putString("mobile",mobile);
fragment.setArguments(args);
trigger.triggerView(fragment);

以上方法就已经完成跳转,如果带参数的话,需要在要跳转的Fragment中接收参数

5.在Fragment2接收跳转时的参数

@Override
protected void initArgs(Bundle bundle) {
    super.initArgs(bundle);
    if (getArguments() != null) {
       mobile = getArguments().getString("mobile");
       Application.showToast(mobile);
    }
}

二、A(activity)跳转到B(activity)下的Fragment(含带参数)

第一种:B(Activity)下Viewpager的Fragment,A(activity)把值传给B(activity)下的Fragment。

A(activity)中:

Intent intent = new Intent();
intent.putExtra("title", title);
intent.setClass(context, B(activity).class);
context.startActivity(intent);

B(activity)中:

//接收参数
title = getIntent().getStringExtra("title");
//把参数传给fragment
B(Fragment) fragment = new B(Fragmnt)();
Bundle args = new Bundle();
args.putString("html", html);
fragment.setArguments(args);
fragments.add(fragment);

如果想设置指定显示Viewpager下的fragment

viewPager.setCurremtItem(page); //即可指定到某个界面

 

持续更新中………

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

邮箱地址不会被公开。 必填项已用*标注

66 − = 57