Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok megnyitni egy...

Hogyan tudok megnyitni egy Fragment-et egy másik Fragment-ből Android Studioban?

Figyelt kérdés

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();



2022. szept. 7. 18:52
 1/1 anonim ***** válasza:

É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()

}



}

2022. szept. 7. 22:32
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!