Android的viewDidLoad和viewDidAppear相当

时间:2010-08-18 14:56:19

标签: iphone android viewdidload viewdidappear

Android是否具有与Cocoa的viewDidLoad和viewDidAppear功能相同的功能?

如果没有,那么当View出现时我将如何执行操作?我的应用程序是一个标签式应用程序,其中一个选项卡是论坛主题列表。我希望每次出现视图时都刷新主题列表。在Android中这样的事情可能吗?

3 个答案:

答案 0 :(得分:18)

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;
        }
    });

答案 1 :(得分:13)

onResume()更像viewCouldAppear。 :) public void onWindowFocusChanged(boolean)最接近viewDidAppear。此时,您可以在活动生命周期内询问有关其大小的视图。

答案 2 :(得分:4)

根据我对Android的有限,初熟的理解,您可以在onCreateActivity方法中实现 viewDidLoad 类型功能:

  

onCreate(Bundle)就在你身边   初始化您的活动。最   重要的是,在这里你通常会   使用布局调用setContentView(int)   资源定义您的UI,并使用   findViewById(int)来检索   您需要的UI中的小部件   以编程方式进行交互。

viewDidAppear 的等价物更接近onResume方法:

  

之后打电话   onRestoreInstanceState(束),   onRestart()或onPause(),为您的   活动开始与互动   用户。这是一个很好的开始   动画,开放独家访问   设备(如相机)等