Как обновить фрагмент из другого действия? - PullRequest
1 голос
/ 02 июня 2019

Моя проблема:

У меня есть 3 класса:

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

В MainActivity это содержимое ContactFragmentMainActivity я нажимаю Add Button, чтобы перейти к AddNewContactActivity

Я хочу Когда я нажимаю Save Button в AddNewContactActivity и возвращаюсь к MainActivity, я должен обновитьContactFragment с new data

Как я могу это сделать?Большое вам спасибо

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Использование 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
}

0 голосов
/ 02 июня 2019

При запуске AddNewContactActivity запускайте его с помощью startActivityForResult. AddNewContactActivity может передавать код результата, представляющий успех и отмену. Когда начальное действие получает код результата успеха, оно может перезагрузить / обновить свое содержимое.

Ссылка: https://www.javatpoint.com/android-startactivityforresult-example

...