Android - 获取碎片结果

时间:2016-06-28 19:31:38

标签: android android-fragments android-intent android-activity

我正在开发一个Android程序,我有两个片段F1,F2,每个片段分别由它自己的Activity,A1和A2托管,这样我需要片段A1F1和A2F2之间的通信。 A1F1调用A2F2,我成功地将片段参数从A1F1传递到A2F2。当用户在A2F2上并点击后退按钮返回A1F1时,我想在A2F2被销毁之前将数据从A2F2传递到A1F1。我没有成功。这就是我到目前为止所提出的问题。

A2F2

private static final String ARG_ID = "XZY";
private int var = 0;


public void returnResult(){
  Intent data = new Intent();
  data.putExtra(ARG_ID, var);
  getActivity().setResult(Activity.RESULT_OK, null);
}

程序在mVar = data.getIntExtra(ARG_ID, 0);行崩溃。断点显示

requestCode = 1
resultCode = -1
data = null
mVar = 0

在A2F2中,我正在调用托管活动getResult(),因为据我所知,片段无法保存结果。请帮忙。

1 个答案:

答案 0 :(得分:0)

您没有将意图数据添加到结果中。将您的方法更改为 -

public void returnResult(){
  Intent data = new Intent();
  data.putExtra(ARG_ID, var);
  getActivity().setResult(Activity.RESULT_OK, data); //Change is here
}