Эквивалент viewDidLoad и viewDidAppear для Android
Есть ли в Android эквивалент функций viewDidLoad и viewDidAppear у Cocoa?
Если нет, то как мне выполнить действие, когда появится представление? Мое приложение представляет собой приложение с вкладками, в котором одна из вкладок представляет собой список тем форума. Я бы хотел, чтобы список тем обновлялся каждый раз, когда открывается вид. Это возможно в Android?
3 ответа
Класс Activity имеет методы onCreate и onResume, которые очень похожи на viewDidLoad и viewDidAppear.
РЕДАКТИРОВАТЬ
Чтобы добавить к этому, так как некоторые упоминали в комментариях, что дерево представлений еще не полностью доступно во время этих обратных вызовов, существует 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(), чтобы ваша активность начала взаимодействовать с пользователем. Это хорошее место для начала анимации, открытия устройств с эксклюзивным доступом (например, камеры) и т. Д.