2016-05-03 5 views
0

フラグメント内でコンポーネントを動的に作成する必要がある場合があります。私はまた、アプリケーションで何度も使用されている特定のコンポーネントを作成する静的関数を持っています。 コンストラクタにコンテキストを渡す機会がたくさんあります。フラグメントまたは静的関数内に新しいコンポーネントを作成するためのコンテキスト?

しかし、静的関数またはフラグメントから拡張する場合は、どのような方法がベストプラクティスですか?

私は多くを読んでいますが、画像全体を理解していません。あなたのヒントをありがとう。例えば

public void onAttach(Context context) { 
     fragmentContext = (FragmentActivity) context; 

or 
getActivity() 
or 
getActivity().getApplicationContext() 
or 
getActivity().getBaseContext() 
or 
getContext() 

or... or.. or.... 

感謝。

答えて

1

UIコンポーネントを作成するには、アクティビティcontextを使用する必要があります。そのため、アクティビティテーマはコンポーネントに適用されます。したがって、Fragmentに2つのオプションがあります。 contextonAttach()に保存し、そのコンテキストを使用してコンポーネントを作成しています。 2番目はgetActivity()を使用しています。両方のコンテキストは、ホストアクティビティコンテキストです。

コンテキストを使用する前に、コンテキストがnullかどうかを確認する必要があります。

+0

ありがとうございます – JDev

関連する問題