我正在开发一个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()
,因为据我所知,片段无法保存结果。请帮忙。
答案 0 :(得分:0)
您没有将意图数据添加到结果中。将您的方法更改为 -
public void returnResult(){
Intent data = new Intent();
data.putExtra(ARG_ID, var);
getActivity().setResult(Activity.RESULT_OK, data); //Change is here
}