Estoy tratando de pasar un URI-Object a mi Intent para usar ese URI en otra actividad ...
¿Cómo paso un URI?
private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra("imageUri", imageUri);
startActivity(intent);
this.finish();
¿Cómo uso ahora este URI en mi otra actividad?
imageUri = extras.getString("imageUri"); // I know thats wrong ...
Gracias chicos
java
android
android-intent
uri
Robert El
fuente
fuente
Respuestas:
puedes almacenar el uri como cadena
y luego simplemente convierte la cadena de nuevo a uri así
fuente
intent.putExtra("imageUrl", mImageUri.toString());
en otra actividadString imageUrl = getIntent().getStringExtra("imageUrl");
Uri mImageUri = Uri.parse(imageUrl);
La
Uri
clase se implementaParcelable
, por lo que puede agregarla y extraerla directamente de laIntent
Puede utilizar el mismo método para cualquier objeto que se implemente
Parcelable
, y puede implementarloParcelable
en sus propios objetos si es necesario.fuente
android.net.Uri
y nojava.net.URI
!intent.putExtras(bundle);
, utilícelo enbundle.putParcelable("imageUri", uri);
lugar de usarlointent.putExtra(...);
directamente en elIntent
objeto.i.putExtra("URIList", uriList.toArray());
->List<Uri> myList = i.getParcelableArrayListExtra("URIList");
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.putExtra(java.lang.String, android.os.Parcelable)' on a null object reference
En Intent, puedes poner directamente Uri. No es necesario convertir el Uri en una cadena y volver a convertirlo a Uri.
Mira este sencillo enfoque.
Y para recuperar a Uri de la intención:
fuente
Y luego puedes buscarlo así:
fuente
aquí como lo uso; Este botón dentro de mi clase de actividad CameraActionActivity donde llamo cámara
Y mi otra clase de actividad DisplayVideo
fuente
Si desea utilizar un campo de datos adicional estándar, debe hacer algo como esto:
La documentación de Intent dice:
No tiene que usar los nombres estándar integrados, pero probablemente sea una buena práctica y más reutilizable. Consulte la documentación del desarrollador para obtener una lista de todos los campos de datos adicionales estándar integrados.
fuente
El
Uri.parse(extras.getString("imageUri"))
estaba causando un error:Entonces cambié a lo siguiente:
y
Esto resolvió el problema.
fuente
puedes hacer así. imageuri se puede convertir en una cadena como esta.
intent.putExtra ("imageUri", imageUri.toString ());
fuente