Android是否具有与Cocoa的viewDidLoad和viewDidAppear功能相同的功能?
如果没有,那么当View出现时我将如何执行操作?我的应用程序是一个标签式应用程序,其中一个选项卡是论坛主题列表。我希望每次出现视图时都刷新主题列表。在Android中这样的事情可能吗?
答案 0 :(得分:18)
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;
}
});
答案 1 :(得分:13)
onResume()更像viewCouldAppear。 :) public void onWindowFocusChanged(boolean)最接近viewDidAppear。此时,您可以在活动生命周期内询问有关其大小的视图。
答案 2 :(得分:4)
根据我对Android的有限,初熟的理解,您可以在onCreate的Activity方法中实现 viewDidLoad 类型功能:
onCreate(Bundle)就在你身边 初始化您的活动。最 重要的是,在这里你通常会 使用布局调用setContentView(int) 资源定义您的UI,并使用 findViewById(int)来检索 您需要的UI中的小部件 以编程方式进行交互。
viewDidAppear 的等价物更接近onResume方法:
之后打电话 onRestoreInstanceState(束), onRestart()或onPause(),为您的 活动开始与互动 用户。这是一个很好的开始 动画,开放独家访问 设备(如相机)等