2015-09-10 4 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 в локальной переменной внутри вашего фрагмента.

+1

Сначала это будет работать. Однако, если вы используете один и тот же фрагмент в нескольких действиях, он присоединяется к ним только при первом открытии в этом действии. Затем, когда вы вернетесь к активности, которая ранее использовала этот фрагмент, очень вероятно, что вы останетесь с информацией из последнего действия ... которое больше не является тем, в котором вы находитесь. Для меня я нашел getActivity() в onResume является надежным. – Anders8

+0

Удивительное предложение, и это правильно Спасибо Anders8 – Devsil

Смежные вопросы