2011-09-08 5 views
10

環境設定のonCreateViewonBindViewの違いは何ですか?ドキュメントで環境設定のonCreateViewとonBindViewの違いは

それはonBindViewことを言う:

は、この設定のデータに作成されたビューをバインドします。これは、 レイアウト内のカスタムビューへの参照を取得し、それらのプロパティを に設定するのに適しています。

なぜ私のレイアウトのビューにプロパティを設定するのがいいですか?現在、onCreateViewメソッドのプロパティを設定していますが、すべて正常に動作しているようです。 私の経験から、両方の方法が常に一緒に呼び出されるように見えます。たぶんonBindViewと呼ばれる状況がいくつかありますか?

+0

'onCreateView 「あなたは建設を見て、拘束力を持って準備することを自分自身に任せます。 'onBindView'では、データに基づいてビューを初期化することに自分自身を制限します。それは結束が何であるかです。状況がありますが、それ以外の場合は別々の方法ではなく、ドキュメンテーションには何か異なるものがあります。あなたのコードは「偶然」働いています。 –

+0

escape-llc-コメントは受け入れられた回答としてマークすることはできません - コメントの代わりに回答の形であなたの回答を投稿してください:) –

+0

私は回答としてコメントを投稿している人を見ていますが、まれに私は反対です。 :-) – davidcesarino

答えて

7

onCreateView()は、最終的に環境設定UIを含むビュー階層を作成するためのものです。 onBindView()は、実際のデータをonCreateView()で作成したビュー階層にバインドするためのものです。

このパターンは、キャッシュされているビュー階層の作成を、データのそのビュー階層へのバインディングから分離します。 Preferenceの場合、onCreateView()は一度だけ呼び出されますが、UIがPreference Viewをロードする必要があるたびにonBindView()が呼び出されます。

私は、あなたがプリファレンスで設定したプロパティーを決して変更しないので、あなたの現在のセットアップが機能していると推測しています。ビュー階層のプロパティをonBindView()に設定する方が、動的なものにする必要がある場合に備えて、設定する方がよいでしょう。

(さておき、デザインパターンを結合対このビューの作成もCursorAdaptersに見られるように、それだけで画面に表示するための十分なビューを作成しますが、常に新しいデータにこれらのビューを結合されている。)