您应该使用 StartActivityForResult()。
//place in shared location
int MYACTIVITY_REQUEST_CODE = 101
//start Activity
Intent intent = new Intent(getActivity(), MyActivity.class);
startActivityForResult(intent, MYACTIVITY_REQUEST_CODE);
然后,您应该在片段中覆盖 onActivityResult()。该方法将在活动关闭后调用。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if ((requestCode == MYACTIVITY_REQUEST_CODE) && (resultCode == Activity.RESULT_OK))
adapter.notifyDataSetChanged()
}
结果代码在通过以下方式完成之前在活动中设置:
setResult(Activity.RESULT_OK)
使用 requestCode 和 resultCode 确实是可选的。如果您从片段中启动多个活动,则只需要使用 requestCode。如果您需要从活动返回不同的结果,您只需要使用 resultCode。