В 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?
3 ответа
Когда пользователь нажимает положительную или отрицательную кнопку в DialogFragment
, вы получаете уведомление в соответствующих прослушивателях, которые вы передаете при вызове методов setPostiveButton()
и setNegativeButton()
. Отсюда вы можете уведомить свою родительскую активность, чтобы обновить отображаемые данные. Вы можете проверить официальные документы. больше ясности.
У вас должен быть просмотр в жизненном цикле Android. Если ваш диалог представляет собой действие с диалоговым окном Look n Feel, вероятно, будет вызываться только Activity.onResume(). Если вы используете настоящий диалог, вы должны вместо этого использовать слушателя.
Как сказано в документации, поскольку API 28 DialogFragment устарел, API лучше не использовать это.
Может быть, лучше, чтобы активность реализовывала этот фрагмент и позволяла ему выглядеть как диалог через стиль. Тогда обычный жизненный цикл Android должен работать хорошо.
От действия к диалогу:
https://stackoverflow.com/a/1979631/8524651
Жизненный цикл Android:
https://stackoverflow.com/a/19485273/8524651
Вы можете использовать эту ссылку для ссылки:
https://www.tutorialspoint.com/how-to-reload-activity-in-android
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].