我创建了一个ListFragment和一个按钮,如下所示(左边的图片)
每当我单击一个添加按钮时,一个新的活动就会打开,在该用户内部编写一些东西并单击done,活动就会结束并返回到listframent,但是在单击overdone之后,我将如何用新的值更新listframent。我是说我在哪里能写
NotifyDataSetChanged。
注意:当我单击done时,数据将存储在数据库中,当listfragment加载时,它将获取其中的数据
我正在使用Android支持兼容性库

最佳答案

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

10-07 18:44