2015-09-10 60 views
0

裏面從我的片段,ViewPager裏面,我希望得到家長的活動:在我的片段的Android:如何從一個片段檢索活動父ViewPager

方法:

@Override 
public void setMenuVisibility(final boolean visible) { 
    super.setMenuVisibility(visible); 
    if (visible) { 
     Activity aa = getActivity(); >>> It's always NULL !! 
     aa.findViewById(R.id.my_special_button).setVisibility(View.VISIBLE); 
    } 
} 

這項活動的佈局:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

.... 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
.... 

<Button 
    android:id="@+id/my_special_button" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="@color/background"/> 

回答

0

您可能需要重寫片段中的OnAttach方法,並將Activity實例保存到Fragment中的局部變量中。

+1

這似乎起初工作。但是,如果您在多個活動中使用相同的片段,則只會在該活動中第一次打開時附加到片段。然後,當你回到之前舉辦過這個片段的活動時,很可能你會留下來自上一次活動的信息......這已不再是你所參與的活動。對於我來說,我發現onResume中的getActivity()是可靠的。 – Anders8

+0

真棒建議,這是正確的感謝Anders8 – Devsil

相關問題