Non capisco perché la gente stia sottovalutando la tua domanda. Fragments
a volte può essere molto confuso, soprattutto per i principianti. Per capire il tuo problema, devi imparare cos'è un Fragment
e come vengono utilizzati.
Per iniziare, uno View
è qualcosa che ha esistenza sullo schermo. Gli esempi includono: TextView
, EditText
, Button
, ecc. Sono posizionati all'interno di "layout" XML. Questi layout sono mostrati usando uno Activity
.
Ora, un Fragment
non è un View
. Non ha alcuna esistenza sullo schermo. Invece, è una classe che gestisce semplicemente un "layout" - un po 'simile a uno Activity
. Se hai bisogno della vista restituita da Framment's onCreateView()
, puoi utilizzare direttamente lo findViewById()
all'interno del tuo Activity
.
Se avete bisogno di un riferimento alla vostra Frammento, ci sono due possibili modi per farlo:
1) Se è stato aggiunto il frammento di codice come questo
getFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container_viewgroup, myFragment, FRAGMENT_TAG)
.commit();
è possibile utilizzare:
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag(FRAGMENT_TAG);
2) Se è stato aggiunto il Frammento all'interno di un file XML di layout come questo:
<fragment android:name="com.example.android.fragments.HeadlinesFragment"
android:id="@+id/fragmentContainer"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
È possibile utilizzare questo:
getFragmentManager().findFragmentById(R.id.fragmentContainer);
Fondamentalmente, ogni attività ha una classe FragmentManager
che mantiene tutta la attiva Fragments
, e ci sono due modi di trovare loro: utilizzando un nome unico che si passa mentre mostrando un frammento, o passando l'ID vista contenitore dove è stato aggiunto il frammento.
Come si aggiunge il frammento? Tramite i tag XML o utilizzando FragmentManager in Java? –
Nachi
Li ho aggiunti usando FragmentManager – Mohammad7G