Как уведомить от активности B к A, что данные списка были изменены? - PullRequest
4 голосов
/ 22 декабря 2011

У меня есть активность ItemList.java.Когда пользователь нажимает на элемент, он начинает новое действие, скажем, ItemDetailActivity.java.

. Я хочу сделать следующее: когда пользователь нажимает кнопку на ItemDetailActivity.java, он должен указать ItemList.java обновить список.вещь.Я знаю, что myListAdapter.notifyDataSetChanged() обновит список.Но как ItemList.java узнает, когда следует изменять данные.

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

Я думаю о том, чтобы создать свой собственный Event / Listener и связываться со списком, поэтому, когда событие запускается, тогдасписок изменений.Может ли приемник вещания помочь мне?

Ответы [ 3 ]

3 голосов
/ 22 декабря 2011

Лучший способ - использовать шаблон наблюдателя (см. http://en.wikipedia.org/wiki/Observer_pattern),, но вы можете создать публичный статический метод в ItemList.java, содержащий вызов myListAdapter.notifyDataSetChanged().

3 голосов
/ 22 декабря 2011

Вы можете попробовать startActivityForResult(intent_to_activity) и в том же классе itemlist переопределить метод: onActivityResult(). В этом методе сделайте уведомление об изменении набора данных, и оно должно отражать.

1 голос
/ 22 декабря 2011

Вы действительно не должны предполагать, что ссылка на ваше старое действие будет поддерживаться Android. Если все это основано на базе данных, то вам действительно не нужно ничего делать для обновления ItemList. Если это не так, вы можете просто позвонить myListAdapter.notifyDataSetChanged() в onResume() вашей активности ItemList.

...