2014-09-25 7 views
6

Desidero accedere a una vista frammento principale in un frammento figlio che è collegato con una pager della vista. Significa che il frammento del genitore contiene un View Pager e un View Pager, quindi un frammento e voglio usare le viste frammento padre nell'attuale frammento di cercapersone.Accesso alla vista frammento padre di ViewPager nel frammento figlio di Cercapersone

Frammento genitore ----> (Contiene) Visualizza cercapersone ------> (Contiene) Frammento figlio. Frammento figlio desidera utilizzare più viste del frammento del genitore. Si prega di suggerire qualsiasi soluzione per quanto riguarda lo stesso.

Grazie in anticipo.

+0

Usa getActivity(). GetSupportFragmentManager(). FindFragmentByTag ("il tag") o getActivity(). GetSupportFragmentManager(). FindFragmentById (R.id.YOURFRAGMENT) – exshinigami

risposta

11

nel vostro uso frammento bambino:

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

e nel vostro frammento genitore è possibile memorizzare i riferimenti dei vostri punti di vista richiesti e utilizzare getter setter per accedervi, un'altra soluzione è la creazione di un'interfaccia ascoltatore. seguire il collegamento sotto per scoprire come implementare:

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

+0

Grazie questo è quello che stavo cercando! –

+0

questo è restituirà null in api <17 – huzain07

+2

Non funziona, Ancora null –

-1

ottengo la variabile e vista da attività di utilizzo di questo

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

stavo cercando di ottenere un sibling Fragment utilizzando il parent così ho cercato di utilizzare getParentFragment() dal child Fragment e veniva sempre restituito null. Così, invece ho appena ricevuto il frammento dal viewpagerAdapter ecco cosa ho fatto per accedere a un 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 

} 

speranze che questo vi aiuterà qualcuno.

1

È possibile utilizzare il codice seguente.

 FloatingActionButton fab = getParentFragment().getView().findViewById(R.id.menu_item); 
Problemi correlati