2017-01-22 7 views
1

<RelativeLayout>と対応するItemAttachmentFragment.javaを持つファイルfragment_item_attachment.xmlがありますが、どのように対応するアクティビティがわかりますか?アクティビティもすべて異なって名前が付けられているようです。フラグメントの原因となるアクティビティを特定するにはどうすればよいですか?

+0

ここで言及したことから、1つのフラグメントしか存在しないと思われますが、何がそんなに混乱しますか?フラグメントを呼び出すアクティビティがアクティビティですか、またはフラグメントからアクティビティ名をプログラムで取得しようとしていますか? – OBX

+0

@Supermanこのプロジェクトには数十の断片と数十の活動があります。私はどのアクティビティがフラグメントを呼び出すのかを知ることで、そのフラグメントに構成オプションを渡すことができます。 –

+0

さて、答えで@Charlieが述べたように、手動でemを探す必要があります。そしてあなたはちょうどFragment、Fragmentsを大いにカスタマイズすることができ、正確にはいくつのアクティビティやフラグメントが必要なのか説明しました。 – OBX

答えて

1

どのアクティビティがフラグメントを開始するかによって異なります。

フラグメントを追加したために、それはあなたに似たいくつかのコード可能性があります:

// Here we have the fragment, but it isn't bound to an activity. 
Fragment fragment = new MyFragment(); 

// Here the fragment will be bound to the activity. 
FragmentTransaction transaction = getFragmentManager() 
     .beginTransaction() 
     .replace(R.id.container, fragment) 
     .commit(); 

断片が活動にバインドされると、フラグメントのgetActivity()メソッドは、アクティビティを返します。

アクティビティにバインドされていない場合、getActivity()はnullを返します。

あなたはMainActivityからの断片を開始し、あなたがその活動にメソッドにアクセスする場合は、フラグメントに次のように書くことができますが:

((MainActivity) getActivity()).myCustomMethod(); 

可能にNullPointerExceptionを避け、安全なコードを記述しますか、 ClassCastException:フラグメントが別の方法で使用されている場合:

関連する問題