Эквивалент viewDidLoad и viewDidAppear для Android

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

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

3 ответа

Решение

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

Activity.onResume

РЕДАКТИРОВАТЬ

Чтобы добавить к этому, так как некоторые упоминали в комментариях, что дерево представлений еще не полностью доступно во время этих обратных вызовов, существует 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;
        }
    });

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

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

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

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

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

Другие вопросы по тегам