Italian return from activity

zenlab

Member
Licensed User
Longtime User
Ciao A tutti,
ho creato una view per selezionare un immagine dal ContentChooser o scattare una foto, ritagliarla e salvarla in un file temporaneo.

Vorrei usare questa view all'esigenza richiamandola da diverse altre view per caricare/selezionare un immagine e salvarla nel punto giusto a seconda della funzione che la richiama....il problema è che non so come intercettare il "ritorno" dalla view chiamata per effettuare l'operazione di salvataggio nella view "chiamante"....
qualche aiuto/consiglio?
 

LucaMs

Expert
Licensed User
Longtime User
Ciao.

Nell'Activity che esegue il ritaglio dell'immagine selezionata (qui per riferimento la chiamo actTakeImage), metti una variabile pubbilca nella Process_Globals, magari chiamala Callback, di tipo Object.

Quando un'altra Activity lancia la actTakeImage, fallo in questo modo:

' Activity XXX
B4X:
actTakeImage.Callback = Me
StartActivity(actTakeImage)

Public Sub Tagliata(Bmp As Bitmap)
' Qui la salvi o ci fai quello che vuoi


' Activity actTakeImage
B4X:
Process_Globals
Public Callback As Object

' qui, quando sei pronto a restituire l'immagine tagliata all'Activity chiamante, metti:
CallSubDelayed2(Callback, "Tagliata", LaBitmapCheHaiOttenutoDallUtente)

Quest'ultima riga lancerà la routine Tagliata dell'Activity chiamante, portando anche l'Activity stessa in foreground.
 

LucaMs

Expert
Licensed User
Longtime User
Meglio ancora... un progetto nel quale un'Activity viene utilizzata come se fosse una funzione (allegato).

Nell'esempio, la "Activity funzione" restituisce solo un testo; ovviamente è possibile fargli restituire qualunque tipo di dato (bitmap comprese).
 

Attachments

  • ActivityAsFunctionTest.zip
    11.3 KB · Views: 197

AnandGupta

Expert
Licensed User
Longtime User
Mi sarei perso questa bella logica, se non fosse per Google :)
[I would have missed this beautiful logic, if not for Google :)]

Regards,

Anand
 
Top