Skip to content

startFragmentForResult方法

JingYeoh edited this page Dec 18, 2017 · 1 revision

Activity的使用中,我们可以通过startActivityForResult获取返回值,这是一个很方便的Api支持,但是在Fragment中没有这种支持,所以本框架提供了这种Api的支持。

该方法只对进行栈操作的Fragment有用。

@Puppet
public class AFragment extend Fragment{
  //触发点击事件,打开BFragment
  Rigger.getRigger(this).startFragmentForResult(this, ResultFragment.newInstance(), 1000);
  //...
  public void onFragmentResult(int requestCode, int resultCode, Bundle args) {
    Logger.i(this, "requestCode=" + requestCode);
    Logger.i(this, "resultCode=" + resultCode);
    if (resultCode != Rigger.RESULT_OK) return;
    String string = args.getString(BUNDLE_KEY);
    Logger.i(this, string);
  }  
}
@Puppet
public class BFragment extend Fragment{
  //触发返回的操作
  Bundle args = new Bundle();
  Rigger.getRigger(this).setResult(Rigger.RESULT_OK, args);
  Rigger.getRigger(this).close();
}

从上面的代码可以看出,用法类似ActivitystartActivityForResult方法。