如何刷新另一个活动的片段?

时间:2019-06-02 17:01:15

标签: android android-fragments refresh

我的问题是:

我有3个课程:

  • MainActivity.java
  • ContactFragment.java
  • AddNewContactActivity.java

MainActivity中,内容为ContactFragment。在MainActivity中,我单击Add Button转到AddNewContactActivity

我想要当我在Save Button中单击AddNewContactActivity并返回到MainActivity时,我必须用ContactFragment更新new data

我该怎么做?非常感谢你

2 个答案:

答案 0 :(得分:0)

启动AddNewContactActivity时,请使用startActivityForResult启动它。 AddNewContactActivity可以传回表示成功和取消的结果代码。当开始活动收到成功结果代码时,它可以重新加载/刷新其内容。

参考:https://www.javatpoint.com/android-startactivityforresult-example

答案 1 :(得分:0)

使用startActivityForResult

private static int final ADD_CONTACT_CODE = 1;

// MainActivity
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == ADD_CONTACT_CODE && resultCode == RESULT_OK) {
            // data is the contactIntent you set in AddNewContactActivity
            // update your fragment here with that data
        }

    }

// addContactButton in MainActivity
onClick {
    startActivityForResult(addNewContactIntent, ADD_CONTACT_CODE);
}

// AddNewContactActivity
// call this when you're finish adding contact
void finishAddContact() {
    Intent contactIntent = Intent();

    // add your added contact here
    contactIntent.putExtra("added contact", addedContact)

    setResult(RESULT_OK, contactIntent);
    finishActivity(ADD_CONTACT_CODE); // this will close this activity returning to the MainActivity and calling its onActivityResult
}