В MainActivity я нажимаю кнопку, затем открывается диалоговое окно (класс, расширяющий DialogFragment). В этом диалоговом окне я нажимаю кнопку, и значение будет сохранено как SharedPrefernece. Теперь, когда я закрываю этот диалог, я хочу прочитать это сохраненное значение в MainActivity.

Вот как я это пробовал, но мой код не запускается, когда я закрываю диалоговое окно.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    System.out.println(Helper.getSharedPreference(getApplicationContext(), "dialog"));

Итак, как я могу обновить MainActivity?

1
xRay 19 Янв 2022 в 13:23

3 ответа

Когда пользователь нажимает положительную или отрицательную кнопку в DialogFragment, вы получаете уведомление в соответствующих прослушивателях, которые вы передаете при вызове методов setPostiveButton() и setNegativeButton(). Отсюда вы можете уведомить свою родительскую активность, чтобы обновить отображаемые данные. Вы можете проверить официальные документы. больше ясности.

0
Taranmeet Singh 19 Янв 2022 в 13:33

У вас должен быть просмотр в жизненном цикле Android. Если ваш диалог представляет собой действие с диалоговым окном Look n Feel, вероятно, будет вызываться только Activity.onResume(). Если вы используете настоящий диалог, вы должны вместо этого использовать слушателя.

Как сказано в документации, поскольку API 28 DialogFragment устарел, API лучше не использовать это.
Может быть, лучше, чтобы активность реализовывала этот фрагмент и позволяла ему выглядеть как диалог через стиль. Тогда обычный жизненный цикл Android должен работать хорошо.
От действия к диалогу:
https://stackoverflow.com/a/1979631/8524651
Жизненный цикл Android:
https://stackoverflow.com/a/19485273/8524651

0
Hatzen 19 Янв 2022 в 13:36

Вы можете использовать эту ссылку для ссылки:

https://www.tutorialspoint.com/how-to-reload-activity-in-android

0
JAY_Panchal 19 Янв 2022 в 16:16