Эквивалент viewDidLoad и viewDidAppear для Android - PullRequest
27 голосов
/ 18 августа 2010

Есть ли в Android эквивалент функций viewDidLoad и viewDidAppear Какао?

Если нет, то как мне выполнить действие, когда появится представление? Мое приложение представляет собой приложение с вкладками, в котором одна из вкладок представляет собой список тем форума. Я бы хотел, чтобы список тем обновлялся каждый раз, когда открывается вид. Возможна ли такая вещь в Android?

Ответы [ 3 ]

18 голосов
/ 18 августа 2010

Класс Activity имеет методы onCreate и onResume, которые очень похожи на viewDidLoad и viewDidAppear.

Activity.onResume

EDIT

Чтобы добавить к этому, так как некоторые упоминали в комментариях, что дерево представлений еще не полностью доступно во время этих обратных вызовов, существует ViewTreeObserver, который вы можете прослушивать, если вам нужен первый доступ к иерархии представлений.Вот пример того, как вы можете использовать ViewTreeObserver для достижения этой цели.

    View someView = findViewById(R.id.someView);
    final ViewTreeObserver obs = someView.getViewTreeObserver();
    obs.addOnPreDrawListener(new OnPreDrawListener() {

        public boolean onPreDraw() {
            obs.removeOnPreDrawListener(this);
            doMyCustomLogic();
            return true;
        }
    });
13 голосов
/ 10 апреля 2012

onResume () больше похож на viewCouldAppear. :) public void onWindowFocusChanged (boolean) является ближайшим к viewDidAppear. На этом этапе жизненного цикла действия вы можете спросить мнение о его размере.

4 голосов
/ 18 августа 2010

Из моего ограниченного, зарождающегося понимания Android, вы реализуете функциональность типа viewDidLoad в методе onCreate вашего Действия :

onCreate (Bundle) - это место, где вы инициализируете свою деятельность.Что наиболее важно, здесь вы обычно вызываете setContentView (int) с ресурсом макета, определяющим ваш пользовательский интерфейс, и используете findViewById (int) для извлечения виджетов в этом пользовательском интерфейсе, с которыми вам нужно взаимодействовать программно.

Эквивалент для viewDidAppear ближе к методу onResume :

Вызывается после onRestoreInstanceState (Bundle), onRestart () или onPause () для вашегоактивность, чтобы начать взаимодействовать с пользователем.Это хорошее место для начала анимации, открытия устройств с эксклюзивным доступом (например, камеры) и т. Д.

...