Pasar ImageView por parámetros

1,575 views
Skip to first unread message

Jefferson Delgado P.

unread,
Feb 20, 2014, 12:17:41 PM2/20/14
to desarrollad...@googlegroups.com
Buenas!

No sé si es posible lo que intento hacer, ya que he buscado y no he conseguido nada.
Lo que quiero es pasar la referencia de un ImageView, al realizar un StartActivityOnResult, a través de Bundle.

¿Alguna idea de si es posible? El error que me da eclipse es "The method put(String, ImageView) is undefined for the type Bundle", como es lógico.

Muchas gracias.


Un saludo!

Gabriel Pozo

unread,
Feb 20, 2014, 12:29:54 PM2/20/14
to desarrollad...@googlegroups.com
Para poder pasarlo, debería ser un objeto Parceable, porque no envías la dirección de la imagen que cargas en el mismo?
http://stackoverflow.com/a/4352194/1748764
A lo sumo, deberías pasar el bitmap de la misma http://stackoverflow.com/a/12858462/1748764


--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/8h8ez2
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver este debate en la Web, visita https://groups.google.com/d/msgid/desarrolladores-android/def81ab7-ee97-4387-a435-a66426f87b15%40googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
Saludos, Gabriel

http://aprendiendodeandroidymas.com/

Jefferson Delgado P.

unread,
Feb 20, 2014, 12:39:27 PM2/20/14
to desarrollad...@googlegroups.com
Gracias Gabriel por la respuesta.

Te cuento como está el asunto, para que entiendas porque pretendo pasar el ImageView por parámetros.
Estoy montando una app, cuyo layout es pintado según lo que lea de un json. Esto lo realizo con una clase dataManager(), que es la encargada de leer el json y pintar un TextiView si es un TextiView, un Spinner si es un Spinner, etc.

En el caso de que tenga que leer una foto, el cometido sería colocar un ImageView y un Button para lanzar la llamada de cargar foto de cámara o de galería. Como el OnActivityResult del mismo tengo que ponerlo en una activity, lo puse en la activity que llama al dataManager para leer el JSON.
Y claro, para que coloque la imagen seleccionada en el ImageView, tengo que pasar la referencia de dicho imageView del dataManager() con la llamada OnActivityResult a la clase que tratará la imagen.

¿Me expliqué o lié más aún las cosas?

De ahí que quiera pasar por parámetros el ImageView y no me valga pasar la dirección de la imagen, ya que la obtendré después.


Muchas gracias nuevamente.


Un saludo!


Jefferson Delgado P.

unread,
Feb 25, 2014, 7:31:19 AM2/25/14
to desarrollad...@googlegroups.com
Buenas nuevamente,

Estoy intentando usar otra opción, y es pasarle el id del ImageView al onactivityresult a través de:

Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.putExtra("id", photo.getId());
Actividad.myActivity.startActivityForResult(i, FOTO_GALLERY);

El problema es que, según parece y entiendo, dicho id que le envío nunca llega a su destino, ya que en primer lugar en ese punto, me dice que photo no lo reconoce como variable (está declarada como final) y aunque le ponga un valor a fuego, en plan 888, en el onactivityforresult siempre me devuelve null cuando hago la llamada data.getStringExtra("id")

¿Alguna idea de qué puede estar pasando, ya sea cuando intento pasar un valor calculado o un valor a fuego al intent? En el segundo caso, ¿puede ser porque el propio data de la cámara machaca el data que yo le envío por parámetros?

Muchas gracias.


Un saludo!

Gabriel Pozo

unread,
Feb 25, 2014, 8:05:53 AM2/25/14
to desarrollad...@googlegroups.com
El ID es de tipo String? Se lo estas enviando? Si pones un breackpoint en la línea  Actividad.myActivity.startActivityForResult(i, FOTO_GALLERY);
Que tiene almacenado el objeto photo? Y si colocas un breackpoint cuando estas tomando los datos en el otro activity que aparece?



Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Jefferson Delgado P.

unread,
Feb 27, 2014, 7:56:59 AM2/27/14
to desarrollad...@googlegroups.com
Buenas Gabriel,

Gracias por responder. Al final averigué, que el problema está en que cuando llamo al startactivityforresult con un intent hacía la cámara, los extras que yo envió se envían ahi, y no llegan al onactivity result de la otra clase para tratarlos.

Lo que hice finalmente, fue crearme una variable estática tipo ImageView en la clase que contiene el onactivityresult, y cada vez que el usuario presione el botón "sacar foto", accedo a ficha variable y la igualo con el ImageView actual, para de ese modo tener la referencia y funciona sin ningún problema.

En código:

En la activity me cree las siguientes variables:

public static Activity myActivity;
public static ImageView imagen;

y realicé myActivity=this;

En la clase donde trato el json, cuando el usuario pica en el botón añadir imagen, puse lo siguiente:

Intent i = new intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Actividad.imagen=photo;
Actividad.myActivity.startActivityForResult(i, FOTO_GALLERY);

De este modo, envío la referencia del ImageView actual al OnActivityResult de la Actividad.


Espero haberme explicado.


Un saludo!


Reply all
Reply to author
Forward
0 new messages