当Activity结束时更新ListFragment

3
我创建了一个列表片段和一个按钮,如下所示(左侧图像)。
每当我点击ADD按钮时,一个新的Activity会打开,在其中用户编写内容并单击DONE后,该Activity将结束并返回到ListFragment,但在单击DONE后,我应该在哪里编写notifyDataSetChanged以更新ListFragment中的新值。我的意思是说,我可以在哪里写?
注意:当我点击DONE时,数据将存储在数据库中,当ListFragment加载时,它将提取其中的数据。
我正在使用android支持兼容性库。
2个回答

5
你应该使用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。

在onActivityResult中我应该写什么? - Hunt

1

或者,你也可以在onActivityResult()中再次调用self.setListAdapter()。这对我来说很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接