onActivityForResult in the fragment gets the return value

First jump from fragment to an activity,
note: if the value of requestCode in onActivityResult is different from the value in startActivityForResult, please use getActivity().startActivityForResult() method to jump! ! !

 intent = new Intent(getContext(), RunTextActivity.class);
                startActivityForResult(intent,999);

Then return from the activity, carry the data at this time, and setResult()

mIntent是意图可以携带值
            setResult(RESULT_OK, mIntent);
在回到fragment所在的activity 的onActivityForResult方法
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            RunningFragment fragment = (RunningFragment) mManager.findFragmentById(R.id.fragment_container);
            //通过id或者tag可以从manager获取fragment对象,
            fragment.onActivityResult(requestCode, resultCode, data);
        }
    }

After finishing the above, go back to the fragment's onActivityForResult method to get the value

  @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {

            Bundle extras = data.getExtras(); //取值
            String text = extras.getString("text");
            mContent.setText(text);
        }
    }

Guess you like

Origin blog.csdn.net/sinat_35541927/article/details/53037436