Hirdetés

Új hozzászólás Aktív témák

  • Karma
    félisten

    Egy kicsit elakadtam, tudna valaki utat mutatni? Egy file importja során a program a következő "elvi" úton fut végig:

    - MainActivity: Import gomb -> meghívja a FileSelectorActivity-t
    - FileSelectorActivity: kiválasztjuk a file-t
    - MainActivity: onActivityResult() -> meghívja MainDialogFragment-et
    - MainDialogFragment: importálhatjuk az adatokat?
    - MainActivity: positiveAnswerFromDialog -> meghívja az importálásért felelős Activity-t

    Ez így egyszerűnek tűnik, de több helyen is vérzik:

    1. Ha a dialogus "importálhatunk?" kérdésére nemmel válaszolunk, akkor vissza kéne jutni a FileSelectorActivity-ba (ráadásul az elhagyott könyvtárba!), hogy tovább válogassunk. Itt akkor újra ugyanúgy meg kell hívnom a FileSelectorActivity-t, mint az Import gombnál? :F

    2. A dialogus csak a file nevére kérdez rá. A file adatai (Uri vagy File) hogyan "utaznak át" az onActivityResult részből (ahol megkapjuk őket) a positiveAnswerFromDialog részbe (ahol a dialogus visszatér)? Hozzak létre egy osztályváltozót a MainActivity-ben, vagy küldjem körbe az adatokat a dialoguson keresztül? :F

    Hogyan érdemes egy ilyen összetett (többlépcsős) kommunikációt szépen megszervezni? Előre is köszönöm!

    1) Igen, újra meg kell hívnod. Célszerű ezt egy metódusba tenned a MainActivityn belül. Az elhagyott könyvtárat meg úgy tudod kezelni, hogy a FileSelectorActivityt indító Intentbe beraksz egy extra mezőt, vagy a data tagját is használhatod (ott URL-t tudsz tárolni). Ezt lekezeled onCreate-ben és szevasz. (Ha támogatsz képernyőelforgatást, akkor egy kicsit bonyolultabb, mert az aktuális állást ki kell mentened.)

    2) Ha a fájl elérési útját tudod, mindent tudsz: létre tudsz hozni egy új File objektumot az elérési úttal (van ilyen konstruktor), és onnantól minden megy.

Új hozzászólás Aktív témák