34

AndroidにはCocoaのviewDidLoadおよびviewDidAppear関数と同等のものがありますか?

そうでない場合、ビューが表示されたときにアクションを実行するにはどうすればよいですか?私のアプリはタブ付きアプリケーションであり、タブの1つがフォーラムトピックのリストです。ビューが表示されるたびにトピックリストを更新してほしい。Androidでそのようなことは可能ですか?

4

3 に答える 3

24

Activityクラスには、viewDidLoadおよびviewDidAppearにかなり類似したonCreateメソッドとonResumeメソッドがあります。

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;
        }
    });
于 2010-08-18T15:10:53.400 に答える
18

onResume()はviewCouldAppearに似ています。:) public void onWindowFocusChanged(boolean)はviewDidAppearに最も近いです。アクティビティライフサイクル内のこの時点で、そのサイズについてビューに問い合わせることができます。

于 2012-04-10T14:50:35.093 に答える
4

私のAndroidに関する限られた初期の理解から、アクティビティのonCreateメソッドにviewDidLoadタイプの機能を実装します。

onCreate(Bundle)は、アクティビティを初期化する場所です。最も重要なことは、ここでは通常、UIを定義するレイアウトリソースを使用してsetContentView(int)を呼び出し、findViewById(int)を使用して、プログラムで操作する必要のあるUIのウィジェットを取得します。

viewDidAppearに相当するものは、 onResumeメソッドに近いものです。

onRestoreInstanceState(Bundle)、onRestart()、またはonPause()の後に呼び出され、アクティビティがユーザーとの対話を開始します。これは、アニメーションを開始したり、専用アクセスデバイス(カメラなど)を開いたりするのに適した場所です。

于 2010-08-18T15:10:55.853 に答える