1
我有一個文件fragment_item_attachment.xml
,它有一個<RelativeLayout>
和相應的ItemAttachmentFragment.java
,但我該如何計算出相應的活動是什麼?這些活動似乎都被命名不同。如何確定哪些活動負責片段?
我有一個文件fragment_item_attachment.xml
,它有一個<RelativeLayout>
和相應的ItemAttachmentFragment.java
,但我該如何計算出相應的活動是什麼?這些活動似乎都被命名不同。如何確定哪些活動負責片段?
這取決於哪個Activity啓動Fragment。
爲了添加的片段,很可能你的一些類似的代碼:
// 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如果片段以不同的方式使用:
if (getActivity() != null && getActivity() instanceof MainActivity) {
((MainActivity) getActivity()).myCustomMethod();
}
那麼從你提到的應該只有一個片段,所以是什麼讓它如此混亂?調用片段的Activity是Activity,還是試圖以編程方式從片段中獲取活動名稱? – OBX
@Superman該項目有幾十個片段和數十個活動。我想知道如何找出哪個活動調用了一個片段,以便我可以將配置選項傳遞給片段。 –
那麼,正如@Charlie在答案中提到的那樣,您必須手動查找em。你只是提到片段,碎片可以在很大程度上定製,多少活動和片段要精確? – OBX