活动完成后更新ListFragment

时间:2012-03-23 17:06:42

标签: android android-listview android-fragments android-listfragment

我创建了一个listfragment和一个如下所示的按钮(左图)

每当我点击一个ADD按钮时,就会打开一个新的Activity并在该用户内部写一些内容然后点击DONE,激活完成并返回到ListFragment,但点击DONE之后我将如何用新值更新ListFragment。我的意思是我在哪里可以写 notifyDataSetChanged。

enter image description here

注意:当我点击DONE时,数据将存储在数据库中,当ListFragment加载时,它将获取其中的数据

我正在使用android支持兼容性库

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:1)

或者,您也可以在self.setListAdapter()中再次致电onActivityResult()。它对我来说很好。