2014-09-25 21 views
6

Chcę uzyskać dostęp do rodzica Fragment widoki w części podrzędnej, który jest dołączony do strony View. Oznacza to, że Fragment rodzica zawiera Stronę Widok i Widok Pager, a następnie Fragment i chcę użyć Widoku Fragmentu Macierzystego w bieżącym Fragmencie Pager'a.Dostęp do fragmentu nadrzędnego ViewPager w podrzędnym fragmencie pagera

Fragment rodzica ----> (Zawiera) Wyświetl pagera ------> (Zawiera) Fragment dziecka. Fragment dziecka chce korzystać z fragmentu rodzica wielu widoków. Proszę zasugerować jakiekolwiek rozwiązanie dotyczące tego samego.

Z góry dziękuję.

+0

Zastosowanie getActivity(). GetSupportFragmentManager(). FindFragmentByTag ("tagu") lub getActivity(). GetSupportFragmentManager(). FindFragmentById (R.id.YOURFRAGMENT) – exshinigami

Odpowiedz

11

w swojej dziecięcej użytku fragment:

ParentFragment frag = ((ParentFragment)this.getParentFragment()); 

iw swojej macierzystej fragmentu można przechowywać referencje swoich poglądów i wykorzystać wymaganych getter setter do nich dostęp, innym rozwiązaniem jest stworzenie interfejsu słuchacza. wykonaj poniższy link, aby dowiedzieć się, jak zaimplementować:

http://developer.android.com/training/basics/fragments/communicating.html

+0

Dzięki to co szukałem! –

+0

to spowoduje zwrócenie wartości null w api <17 – huzain07

+2

Nie działa, wciąż jest puste –

-1

uzyskać zmienną i widok z działalności za pomocą tego

YourActivity activity = (YourActivity) getActivity(); 
activity.mVar = 1; 
activity.textView.setText("Number "+activity.mVar); 
0

starałem się dostać sibling Fragment pomocą parent więc próbowałem użyj getParentFragment() z child Fragment i zawsze zwracał null. Więc zamiast ja właśnie fragment z viewpagerAdapter oto co zrobiłem, aby uzyskać dostęp do sibling Fragment:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    mViewPager = (ViewPager) container; 
    BasePagerAdapter bpa = (BasePagerAdapter) mViewPager.getAdapter(); 
    MySiblingFragment f = (MySiblingFragment) bpa.getItem(1); //I know the position of the fragment so I hardcoded it 

} 

nadzieje Pomoże ktoś.

1

Możesz użyć poniższego kodu.

 FloatingActionButton fab = getParentFragment().getView().findViewById(R.id.menu_item); 
Powiązane problemy