Android 是否有等效于 Cocoa 的 viewDidLoad 和 viewDidAppear 函数?
如果没有,那么当视图出现时我将如何执行操作?我的应用程序是一个选项卡式应用程序,其中一个选项卡是论坛主题列表。我希望每次出现视图时都刷新主题列表。这样的事情在Android中可能吗?
Android 是否有等效于 Cocoa 的 viewDidLoad 和 viewDidAppear 函数?
如果没有,那么当视图出现时我将如何执行操作?我的应用程序是一个选项卡式应用程序,其中一个选项卡是论坛主题列表。我希望每次出现视图时都刷新主题列表。这样的事情在Android中可能吗?
Activity 类具有非常类似于 viewDidLoad 和 viewDidAppear 的 onCreate 和 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 的有限的初步了解,您可以在Activity的onCreate方法中实现viewDidLoad类型功能:
onCreate(Bundle) 是您初始化活动的地方。最重要的是,在这里您通常会使用定义 UI 的布局资源调用 setContentView(int),并使用 findViewById(int) 检索该 UI 中需要以编程方式与之交互的小部件。
viewDidAppear的等价物更接近onResume方法:
在 onRestoreInstanceState(Bundle)、onRestart() 或 onPause() 之后调用,以便您的活动开始与用户交互。这是开始动画、打开独占访问设备(例如相机)等的好地方。