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を使用する必要があります。