AndroidにはCocoaのviewDidLoadおよびviewDidAppear関数と同等のものがありますか?
そうでない場合、ビューが表示されたときにアクションを実行するにはどうすればよいですか?私のアプリはタブ付きアプリケーションであり、タブの1つがフォーラムトピックのリストです。ビューが表示されるたびにトピックリストを更新してほしい。Androidでそのようなことは可能ですか?
AndroidにはCocoaのviewDidLoadおよびviewDidAppear関数と同等のものがありますか?
そうでない場合、ビューが表示されたときにアクションを実行するにはどうすればよいですか?私のアプリはタブ付きアプリケーションであり、タブの1つがフォーラムトピックのリストです。ビューが表示されるたびにトピックリストを更新してほしい。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に関する限られた初期の理解から、アクティビティのonCreateメソッドにviewDidLoadタイプの機能を実装します。
onCreate(Bundle)は、アクティビティを初期化する場所です。最も重要なことは、ここでは通常、UIを定義するレイアウトリソースを使用してsetContentView(int)を呼び出し、findViewById(int)を使用して、プログラムで操作する必要のあるUIのウィジェットを取得します。
viewDidAppearに相当するものは、 onResumeメソッドに近いものです。
onRestoreInstanceState(Bundle)、onRestart()、またはonPause()の後に呼び出され、アクティビティがユーザーとの対話を開始します。これは、アニメーションを開始したり、専用アクセスデバイス(カメラなど)を開いたりするのに適した場所です。