Hogyan tudok megnyitni egy Fragment-et egy másik Fragment-ből Android Studioban?
Android Studioban Java nyelven írok egy appot.
Jelenleg ott akadtam el, hogy van egy Fragmentem, amivel ha kijelölök a listából egy elemet, akkor azt a következő Fragmentben részletezem az adatait.
Az a porblémám, hogy mikor lecserélem a Fragmentet, akkor mindkettő Fragment egyszerre jelenik meg.
Azt a segítséget kaptam, hogy nem a Fragmenttel kéne meghívni a következőt, hanem a MainActivity-vel, de nem tudom, hogy azt hogyan tudnám megoldani.
Ezt a kódot használtam a Fragment lecserésére:
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction
.setReorderingAllowed(true)
.replace(R.id.fragment_layout, nextFrag)
.commit();
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Én így tanultam, aztán lehet nem ez a legcélszerűbb megoldás (Kotlinban küldöm mert nekem így van)
Röviden, activity hostol egy Fragmentet, amit aztán lecserélgetsz Callback-eken keresztül
ListaFragmentbe:
private var callbacks: Callbacks?=null
interface Callbacks {
fun idSelected(ID: String)
}
override fun onAttach(context: Context) {
callbacks= context as Callbacks?
//Az onAttach paramétere az Activity amin a Fragment fut, ezért itt le tudjuk menteni
}
override fun onDetach(){
callbacks=null
}
//És így használod:
callbacks?.idSelected(id)
Az activity meg valahogy így nézzen ki:
class MyActivity : AppCompatActivity(), ListaFragment.Callbacks {
override fun idSelected(ID: String){
val args=Bundle().apply{
putSerializable("id", ID)
//Ez átadja az új Fragmentnek hogy melyik elemet választottad a listáról
}
val Fragment=UjFragment().apply {arguments=args}
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, fragment)
.addToBackStack(null)
.commit()
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!