fragment中onActivityForResult得到返回值

来源:互联网 发布:3b线切割编程小狗图案 编辑:程序博客网 时间:2024/06/05 17:25

首先从fragment跳转到一个activity,
注意:如果requestCode在onActivityResult中的值跟startActivityForResult中的值不同时,请使用getActivity().startActivityForResult()方法进行跳转!!!

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

再从activity返回,此时携带数据,并且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);        }    }

上面写完再回到fragment的onActivityForResult 方法可以得到值了

  @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);        }    }
0 0