我的代码中有以下工作流程。我有使用 startActivityForResult(intent, requestCode)fragment A
开始一个新的。activity B
活动 B 有一个片段说fragment C
,其中包含一个列表视图(它的适配器有一个数组列表)和一个编辑文本,用于将新值添加到列表视图中。
我打算将数据发送回fragment A
. 我fragment C
在同一个片段的 onPause() 方法中实现了一个接口。
@Override
public void onPause() {
// TODO Auto-generated method stub
OnSubtaskExitListener onSubtaskExitListener = (OnSubtaskExitListener) getSherlockActivity();
onSubtaskExitListener.onExit(Subtasks);
super.onPause();
}
子任务是在编辑文本中从添加按钮添加新项目时更新的数组列表。
我已经实现了这个接口,activity B
其中包含片段 C。
@Override
public void onExit(ArrayList<HashMap<String, String>> subtasks) {
....
intent.putExtra("ResultArray", stringArray);
setResult(RESULT_OK, intent);
finish();
请注意,在片段 A 中调用了 startActivityForResult。因此,使用了 setResult。
问题:在onActivityResult(int requestCode, int resultCode, Intent data)
片段 A 中,Intent 数据始终为空。我在活动 B 的 onExit 方法中使用了 android.util.Log 来查看在 put extra 中发送的数据是否为空,例如Log.d("Array Result", stringArray[0].toString());
但 onActivityResult() 总是获取数据为空。
请帮我找出错误。谢谢 :)