» »

[Android] fragments, viewpager

[Android] fragments, viewpager

icurk ::

Zdravo. Imam fragmentActivity zgrajen z viewpager-jem. Imam 3 strani, vsaka stran pa je predstavljena kot posamezen fragment.
Na srednjem fragmentu kličem dialogFragment, kateri mi naj bi po zaprtju, posodobil podatke na srednjem in desnem fragmentu. Problem se pojavi, ker nevem, kako posodobiti podatke na desnem fragmentu.
Srednji fragment lahko posodobim v metodi onWindowFocusChanged v fragmentActivity-u. Seznam, ki se nahaja v desnem fragmentu pa ne morem posodobiti iz te metode, zaradi problema, če se postavim na levi fragment, saj takrat desni fragment ni "viden".

Ima kdo kako idejo?

DuleKrtola ::

Iz dialoga klici metode v fragmentu, ki bojo refreshale vsebino. Lahko narediš svoj "event listener" ali pa daš dialogu referenco na fragment z vsebino. Drugač pa pri view pagerju vedno obstaja view trenutnega fragmenta in prvih sosednjih fragmentov.

Mavrik ::

Ima kdo kako idejo?


1.) Loči podatke od prikaza, torej mej te podatke nekje drugje, kot v fragmentih
2.) Osveži podatke v fragmentovem onResume(), ki se pokliče tudi ko postane fragment viden z ozadja
The truth is rarely pure and never simple.

DuleKrtola ::

1.) Loči podatke od prikaza, torej mej te podatke nekje drugje, kot v fragmentih


Lahko utemeljiš zakaj se ti to zdi dobro? Seveda če imaš dato ki jo uporablja več fragmentov, drugače pa se mi ne sliši preveč smiselno. Sej fragment je živ dokler je pripet v activity, samo View ne obstaja vedno.

Mavrik ::

DuleKrtola je izjavil:

1.) Loči podatke od prikaza, torej mej te podatke nekje drugje, kot v fragmentih


Lahko utemeljiš zakaj se ti to zdi dobro? Seveda če imaš dato ki jo uporablja več fragmentov, drugače pa se mi ne sliši preveč smiselno. Sej fragment je živ dokler je pripet v activity, samo View ne obstaja vedno.


Ker očitno on ima podatke, ki jih uporablja več fragmentov in je srž njegovega problema to, da jih ima shranjene na napačnem placu.

Pa v fragmentih se (isto kot pri Activityih) poganja onPause/onResume ko prehajajo v ozadje. Če so pripeti nima veze.
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • spremenil: Mavrik ()

DuleKrtola ::

Seveda ima, fragment manager bo pobrisal fragment, če ga odstraniš iz viewpagerja.

In srž njegovega problema je očitno osveževanje, ne hranjenje podatkov

Zgodovina sprememb…

icurk ::

Mavrik je izjavil:


2.) Osveži podatke v fragmentovem onResume(), ki se pokliče tudi ko postane fragment viden z ozadja


Tako ne gre, saj se onResume() pokliče šele, ko grem iz levega v srednji fragment in ne takrat, ko se premaknem na desni fragment

Drugače pa je, kot je pravilno ugotovil DuleKrtola, moj problem osveževanje. Jaz shranim podatek v bazo in nato moram ustrezno osvežit podatke...
Bom sedaj poizkusil seznam na desnem fragmentu ustvarit in tudi osvežit v OnPageChangeListener v mojem viewpagerju.

DuleKrtola ::

Tako ne gre, saj se onResume() pokliče šele, ko grem iz levega v srednji fragment in ne takrat, ko se premaknem na desni fragment

Ko greš iz levega na srednjega se mora zbuildat desni view, dejansko pa se zbuildajo vsi. (zato se tudi kliče onResume, enako se zgodi ko greš iz desnega na srednji page)

DialogFragment odpri iz activitiya, kjer verjetno ze imas referenco na desni fragment. Je namreč priporočljivo, da iz enega fragmenta ne drezaš v drugega direktno, ampak preko activityja, ali pa uporabiš event listenerje.

Zgodovina sprememb…

icurk ::

A bi lahko malo bolj razložil kaj si mislil z refereno na desni fragment in kakšne event listenerje si mislil? S fragmenti sem do sedaj delal zelo malo, tako da sem še začetnik pri njih.

Hvala

Marat ::

A si si že pogledal Fragment lifecycle?

icurk ::

Problem je, ker se activity, ki kliče dialogfragment ne ustavi in zato se tudi ne kliče onResume v posameznih fragmentih.

Problem sem sicer rešil, verjetno ne glih optimalno, z broadcaste receiverjem ki javi fragmentu, ko fragmentActivity zamenja focus in nato iz posameznega fragmenta kličem metodo za osveževanje podatkov.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Android programiranje

Oddelek: Programiranje
404952 (1202) acookook
»

Android - Začetnik

Oddelek: Programiranje
111695 (1020) hurlimannxt
»

[Android] Informacija iz Servic-a v Main Activity

Oddelek: Programiranje
7882 (692) i386
»

Napoved kometa 73P / Schwassmann - Wachmann 3

Oddelek: Novice / Znanost in tehnologija
194335 (3229) gzibret
»

Čudo prečudno

Oddelek: Pomoč in nasveti
101199 (921) Neznalec

Več podobnih tem