Junior — Middle
Kaip galima įgyvendinti pereinamąjį į konkretų Fragmentą naudojant push pranešimą?
sobes.tech AI
Atsakymas iš AI
Norint pereiti į konkretų Fragmentą per push pranešimą, dažnai naudojamas Intent su papildomais duomenimis (extras), kurie perduodami į Activity, o tada Activity nusprendžia, kurį Fragmentą parodyti.
Apytikslis algoritmas:
- Push pranešime perduoti duomenis, nurodančius norimą Fragmentą (pvz., eilutės identifikatorių arba enum).
- Paspaudimo apdorojimo metode (PendingIntent) sukurti Intent, skirtą paleisti Activity.
- Activity, onCreate arba onNewIntent metodu, perskaityti duomenis iš Intent ir pakeisti Fragmentą į reikalingą.
Kodo pavyzdys:
// Kuriant pranešimą
val intent = Intent(context, MainActivity::class.java).apply {
putExtra("target_fragment", "profile")
}
val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
// MainActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val targetFragment = intent.getStringExtra("target_fragment")
if (targetFragment != null) {
val fragment = when(targetFragment) {
"profile" -> ProfileFragment()
"settings" -> SettingsFragment()
else -> DefaultFragment()
}
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, fragment)
.commit()
}
}
Šiuo būdu, paspaudus pranešimą, vartotojas bus tiesiogiai nukreiptas į norimą ekraną.